QT上位机开发(权限管理)

news2025/5/13 7:15:15

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

        如果只是简单的工具软件,其实是没有权限管理这么一说的。比如说,串口工具、485工具之类的软件,其实根本不存在所谓的权限管理。只有在这个软件会被很多人使用的时候,才会涉及到所谓的权限管理。所以,权限管理的一个前提,就是很多不同背景的人都会用到这个软件,这才会涉及到。

1、权限的分类

        一般来说,软件的使用权限可以分成三种。一种是超级用户,或者称之为root。这种用户几乎掌握了所有的软件权限。他可以定义规则,它可以添加新的用户,也可以删除老用户,它还可以分配权限。但是对于他自己来说,软件的所有权限都是开放的。

        第二类就是管理员权限。管理员权限会比超级用户的权限小一点。但除了不能随便添加用户、修改对应用户的权限之外,其他的软件功能和管理员一样,一般都是开放的。

        第三类就是操作员。和前面两种相比较,操作员的权限是最小的,一般操作员仅仅可以操作工单、查询数据和搜索资料等等。但是这些工单,他没有办法删除、没有办法撤销,甚至有时候都没有办法修改。

2、权限的赋予

        软件的权限,在用户创建的时候就已经被赋予了特定的权限。比如,我们增加一个新用户tom。那么这个新用户tom在和特定角色绑定的时候,基本就确定了他的权限是什么。比如说像这样处理,

        实现上的话,这边要注意的是,暂时没有找到在designer上面配置、添加combobox item的办法。目前主要还是通过cpp硬编码实现的,

	ui.comboBox->addItem("root");
	ui.comboBox->addItem("manager");
	ui.comboBox->addItem("operator");

3、软件权限的实现方式

        理论上说,软件权限的实现可以通过配置文件,或者通过数据库来实现。但是配置文件一般都是明文的,里面的内容很容易被人修改,所以大多数时候软件权限都是通过数据库来实现的。因为数据库本身就包含了用户名和密码验证环节,相关资料只有超级用户才能看得到,或者说只有超级用户才能变更这些参考资料。

4、软件权限的操作表

        确定了软件权限用数据库之后,一般我们还会有一张表。这种表上面可以有很多不同的角色,虽然我们前面仅提到了三种角色。那不同的角色,理论上权限也是不一样的。那角色确定之后,权限部分就可以根据模块、功能来进行确定了。比如说,这个软件有26个模块,这样模块就可以用字母A-Z来表示。另外每个模块里面又有10个子功能,以第一个功能为例,这种情况下,如果角色可以使用对应的功能,那么可以是A1=1;如果不支持对应的功能,那么A1=0,模块和功能之间,可以相互用,隔开,比如A1=0,A2=1,依次类推。

5、软件界面的加载

        有了数据库、有了权限,这样每个用户加载的界面其实就是不一样的。理论上来说,可以先把所有的界面都加上,最后根据权限灰化部分按钮、菜单和工具栏即可。但是这种处理方法,有点不人性化。因为它把使用者明显地区分成了三六九等,会给人一种被歧视的感觉。实际处理的时候,最好是界面部分只显示支持的功能,不支持的功能就直接忽略不显示。这样的话,既然对应的功能从来就没有显示,作为用户也重来没有应用过,这样就不会存在一种被忽略、被区别看待的感觉,因为它会产生错觉,即这些功能软件根本就不提供。

6、后续的话

        不同的软件,部署的场合不同,使用的人群背景不同,有必要通过权限管理的方式提前分割开来。这部分宜早不宜迟,如果是后期再来做,常常就会变得很麻烦,要是早点规划的话,这样反而来的更好一些。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1383433.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NLP论文阅读记录 - WOS | 2023 TxLASM:一种新颖的与语言无关的文本文档摘要模型

文章目录 前言0、论文摘要一、Introduction1.1目标问题1.2相关的尝试1.3本文贡献 二.文献综述及相关工作三.本文方法四 实验效果4.1数据集4.2 对比模型4.3实施细节4.4评估指标4.5 实验结果4.6 细粒度分析 五 总结思考 前言 TxLASM: A novel language agnostic summarization mo…

iOS上h5长按识别图片二维码,图片会默认放大,禁用这一默认行为

iOS上h5长按识别图片二维码&#xff0c;图片会默认放大&#xff0c;禁用这一默认行为 测试代码 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-widt…

RocketMQ源码阅读-Producer消息发送

RocketMQ源码阅读-Producer消息发送 1. 从单元测试入手2. 启动过程3. 同步消息发送过程4. 异步消息发送过程5. 小结 Producer是消息的生产者。 Producer和Consummer对Rocket来说都是Client&#xff0c;Server是Broker。 客户端在源码中是一个单独的Model&#xff0c;目录为rock…

精确掌控并发:固定时间窗口算法在分布式环境下并发流量控制的设计与实现

这是《百图解码支付系统设计与实现》专栏系列文章中的第&#xff08;14&#xff09;篇。点击上方关注&#xff0c;深入了解支付系统的方方面面。 本篇主要介绍分布式场景下常用的并发流量控制方案&#xff0c;包括固定时间窗口、滑动时间窗口、漏桶、令牌桶、分布式消息中间件…

python + ddt数据驱动 之 多个参数

案例&#xff1a;打开https://www.csdn.net/&#xff0c;进行登录&#xff0c;查看结果 不使用ddt数据驱动&#xff1a; import unittest from selenium import webdriver import timeclass CSDNTestCase(unittest.TestCase):def setUp(self):# 打开chrome浏览器self.driver …

vue2实现日历12个月平铺,显示工作日休息日

参考&#xff1a;https://blog.csdn.net/weixin_40292154/article/details/125312368 1.组件DateCalendar.vue&#xff0c;sass改为less <template><div class"cc-calendar"><div class"calendar-title"><span>{{ year }}年{{ mo…

线性调频信号的解线调(dechirp,去斜)处理matlab仿真

线性调频信号的解线调 线性调频信号的回波模型参考信号去斜处理去斜处理傅里叶变换得到脉压结果解线调仿真总结 线性调频信号的回波模型 对于线性调频脉冲压缩雷达&#xff0c;其发射信号为&#xff1a; s ( t ) r e c t ( t T ) e x p ( j π μ t 2 ) \begin{equation} s(…

C++深入学习之STL:1、容器部分

标准模板库STL的组成 主要由六大基本组件组成&#xff1a;容器、迭代器、算法、适配器、函数对象(仿函数)以及空间配置器。 容器&#xff1a;就是用来存数据的&#xff0c;也称为数据结构。 本文要详述的是容器主要如下&#xff1a; 序列式容器&#xff1a;vector、list 关联…

网络爬虫丨基于scrapy+mysql爬取博客信息并保存到数据库中

文章目录 写在前面实验描述实验框架实验需求 实验内容1.安装依赖库2.创建Scrapy项目3.配置系统设置4.配置管道文件5.连接数据库6.分析要爬取的内容7.编写爬虫文件 运行结果写在后面 写在前面 本期内容&#xff1a;基于scrapymysql爬取博客信息并保存到数据库中 实验需求 ana…

人大金仓参与起草《数据库运维管理能力成熟度模型》标准

近日&#xff0c;由中国信息通信研究院、中国移动通信集团有限公司、人大金仓等单位参与起草的《数据库运维管理能力成熟度模型》标准正式发布。本标准适用于金融、电信、互联网、能源等重点行业对内部数据库运维管理能力进行全面综合的评价。 数据库作为基础软件的核心组成部分…

18k+ start开源项目管理工具Focalboard centos部署教程

1.下载安装包 官方github地址 https://github.com/mattermost/focalboard 发行版下载地址 https://github.com/mattermost/focalboard/releases/download/v7.10.6/focalboard-server-linux-amd64.tar.gz 插件下载地址 https://github.com/mattermost/focalboard/releases/down…

Http协议、HttpClient

HTTP请求协议包 http服务器 HTTP Server 也是我们常说的Web服务器 在网络中传递的信息都是以【二进制】形式存在的&#xff0c;接收方在接收信息后需要把二进制数据编译为原数据。 弊端&#xff1a;HTTP协议无法实现服务器主动向客户端发起消息。 http服务器需要 1、可以接…

Apollo之原理和使用讲解

文章目录 1 Apollo1.1 简介1.1.1 背景1.1.2 简介1.1.3 特点 1.2 基础模型1.3 Apollo 四个维度1.3.1 application1.3.2 environment1.3.3 cluster1.3.4 namespace 1.4 本地缓存1.5 客户端设计1.5.1 客服端拉取原理1.5.2 配置更新推送实现 1.6 总体设计1.7 可用性考虑 2 操作使用…

鸿蒙应用开发尝鲜:初识HarmonyOS

初识HarmonyOS 来源:华为官方网站 : https://developer.huawei.com/ 相信大家对鸿蒙应用开发也不在陌生,很多身处互联网行业或者不了解的人们现在也一定都听说过华为鸿蒙.这里我将不再说废话,直接步入正题 鸿蒙应用开发语言 HarmonyOS应用开发采用的是ArkTS语言,ArkTS是在Typ…

sublime中添加GBK编码模式

当写代码的中文注释时&#xff0c;编译代码出现如下错误&#xff1a; 解决办法&#xff0c;添加GBK模式&#xff1a; &#xff11;. 点击Preferences -> Package Control&#xff1a; 2. 在跳出来的搜索框里搜索conver, 点击ConverToUTF8 3. File左上角会多出GBK的选项 由…

arcgis javascript api4.x加载天地图web墨卡托(wkid:3857)坐标系

效果&#xff1a; 示例代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><meta http-equiv&quo…

HarmonyOS-LocalStorage:页面级UI状态存储

管理应用拥有的状态概述 上一个章节中介绍的装饰器仅能在页面内&#xff0c;即一个组件树上共享状态变量。如果开发者要实现应用级的&#xff0c;或者多个页面的状态数据共享&#xff0c;就需要用到应用级别的状态管理的概念。ArkTS根据不同特性&#xff0c;提供了多种应用状态…

LeetCode讲解篇之2280. 表示一个折线图的最少线段数

文章目录 题目描述题解思路题解代码 题目描述 题解思路 折线图中如果连续的线段共线&#xff0c;那么我们可以可以将其合并成一条线段 首先将坐标点按照横坐标升序排序 然后遍历数组 我们可以通过计算前一个线段的斜率和当前线段的斜率来判断是否共线 如果二者相等&#x…

[NSSCTF Round#16 Basic]RCE但是没有完全RCE

[NSSCTF Round#16 Basic]RCE但是没有完全RCE 第一关 <?php error_reporting(0); highlight_file(__file__); include(level2.php); if (isset($_GET[md5_1]) && isset($_GET[md5_2])) {if ((string)$_GET[md5_1] ! (string)$_GET[md5_2] && md5($_GET[md…

【剑指offer】数组中重复的数字

&#x1f451;专栏内容&#xff1a;力扣刷题⛪个人主页&#xff1a;子夜的星的主页&#x1f495;座右铭&#xff1a;前路未远&#xff0c;步履不停 目录 一、题目描述1、题目2、示例 二、题目分析1、双重for循环2、for-each 循环3、set集合 一、题目描述 1、题目 剑指offer&a…