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

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱: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.mfbz.cn/a/320968.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

哈希表与哈希算法(Python系列30)

在讲哈希表数据结构和哈希算法之前,我想先刨析一下数组和python中的列表 首先来讲一下数组,我想在这提出一个疑问: 为什么数组通过索引查询数据的时间复杂度为O(1),也就是不管数组有多大,算法的执行时间都是不变的。…

数据在AI图像修复任务中的核心作用

在人工智能(AI)领域,数据的重要性不言而喻。尤其在图像修复任务中,数据的精度和质量直接影响着AI模型的性能。图像修复是指利用AI技术自动识别图像中的缺陷或遮挡物,并对其进行修复或还原的过程。这项技术广泛应用于各…

LLM大模型和数据标注

对于那些不精通机器学习的人来说,像 ChatGPT 所基于的 GPT-3.5 这样的大型语言模型似乎是自给自足的。这些模型通过无监督或自我监督学习进行训练。简而言之,只需极少的人工干预,就能生成一个能像人类一样对话的模型。 这就引出了一个问题--…

3.三极管和MOS管

3.三极管和MOS管 基础知识三极管是电流控制型器件MOS管是电压控制型器件 分类及引脚定义电流导通方向基础应用常用MOS管电平转换电路MOS管实现电平转换用MOS管实现的“I2C总线电平转换电路”,实现3.3V电压域与5V电压域间的双向通讯 基础知识 三极管是电流控制型器件…

C语言中关于指针的理解及用法

关于指针意思的参考:https://baike.baidu.com/item/%e6%8c%87%e9%92%88/2878304 指针 指针变量 地址 野指针 野指针就是指针指向的位置是不可知的(随机的,不正确的,没有明确限制的) 以下是导致野指针的原因 1.指针…

ZZULIOJ 1110: 最近共同祖先(函数专题)

题目描述 如上图所示,由正整数1, 2, 3, ...组成了一棵无限大的二叉树。从某一个结点到根结 点(编号是1 的结点)都有一条唯一的路径,比如从10 到根结点的路径是(10, 5, 2, 1), 从4 到根结点的路径是(4, 2, 1)&#xff0…

【python playwright 安装及验证】

python playwright pip install playwright pip install playwright -i http://mirrors.aliyun.com/pypi/simple/ playwright codegen -o script.py -b chromium --ignore-https-errors --viewport-size “2560,1440” --proxy-server “http://100.8.64.8:60497” https://w…

xtu oj 1340 wave

题目描述 一个n列的网格,从(0,0)网格点出发,波形存在平波(从(x,y)到(x1,y)),上升波(从(x,y)到(x1,y1)),下降波(从(x,y)到(x1,y−1))三种波形,请问从(0,0)出发,最终到达(n,0)的不同波形有多少种&#xff1f…

x-cmd pkg | jless - 受 Vim 启发的命令行 JSON 查看器

目录 简介首次用户功能特点类似工具与竞品进一步探索 简介 jless 是一个命令行 JSON 查看器,设计用于读取、探索和搜索 JSON 数据。可以使用它来替代 less 、 jq 、 cat 以及您当前用于查看 JSON 文件的编辑器的任何组合。它是用 Rust 编写的,可以作为单…

LINUX基础培训六之磁盘和文件系统管理

前言、本章学习目标 掌握fdisk分区类型和管理分区了解parted分区类型掌握LVM模式文件系统创建、扩展、缩小文件系统 一、磁盘的分区管理 在 Linux 中有专门的分区命令 fdisk 和 parted。其中 fdisk 命令较为常用,但不支持大于 2TB 的分区;如果需要支…

QT上位机开发(usb设备访问)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 利用usb接口访问底层下位机,这是一种很常见的方式。目前比较简单的做法有两种,一种是usb转串口,另外一种是利用…

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…

BRC20通证的诞生与未来展望!如何导入bitget教程

BRC-20通证是什么&#xff1f; 嘿&#xff01;你知道BRC-20通证吗&#xff1f;这可是比特币区块链上的超级明星&#xff01;它们不依赖智能合约&#xff0c;而是把JSON代码刻在聪上&#xff0c;聪可是比特币的最小单位哦&#xff01;就像在比特币的乐高积木上盖房子&#xff0…

JDK8终将走进历史,Oracle宣布JDK继续免费

目录 前言Oracle 已免费提供 JDKOracle Java SE 产品最新动态 为什么业界中用JDK8那么多Java SE 8 公共更新结束总结 前言 今天想到上个月无意中听闻到的一句话&#xff1a;JDK8之后收费了&#xff0c;所以大家都用JDK8。当时只觉得这个话说得不对&#xff0c;但因为和说话的人…

ubantu系统运维命令,端口相关操作

1、使用sudo ufw status命令查看所有开放的端口&#xff0c;如下图&#xff1a; 2、使用命令sudo ufw allow 8443&#xff0c;打开端口8443.如下图&#xff1a; 3、使用 sudo ufw reload刷新端口配置&#xff0c;如下图&#xff1a;

如何挖掘过期老域名并注册一个 DA 为 10 的高价值老域名

原文来源&#xff1a;https://guomuyu.com/registered-a-high-value-domain.html 最近有一些有意从事外贸的朋友阅读了《2024最新外贸建站&#xff1a;WordPress自建外贸独立站教程》这篇文章。然而&#xff0c;当他们尝试注册与自己所从事行业相关的域名时&#xff0c;却发现…

【电源专题】案例:不同模块同一个管脚默认状态不一样会导致什么异常?

案例背景:在产品设计中,有时候会兼容两个不同供应商同一个方案的模块。比如两个供应商使用的内部方案都是一样的芯片,封装也是兼容的。但是由于专利、LAYOUT方便、软件开发方便等角度来看,可能会存在不同模块供应商的同一个PIN脚对应的芯片内部的管脚不一样。管脚不一样那么…

训练FastestDet(Anchor-Free、参数量仅0.24M),稍改代码使得符合YOLO数据集排布

文章目录 0 参考链接1 准备数据1.1 使用以下代码生成绝对路径的txt文件1.2 在config文件夹下新建一个xxx.names文件 2 配置训练参数3 稍改代码使得符合YOLO数据集排布4 开始训练 0 参考链接 官方的代码&#xff1a;FastestDet 1 准备数据 我已有的数据集排布&#xff1a;&am…

vue3移动端适配

将vue3项目中的 px 单位&#xff0c;自动转换为rem 单位 可以看到这里会根据页面缩小放大变化 需要安装两个插件&#xff0c;看步骤 amfe-flexible --- 默认指向2.2.1版本 npm i -S amfe-flexiblepostcss-pxtorem --- 默认指向6.0.0版本 --save-dev 参数会把依赖包的版本信…

抽象类--java学习笔记

什麽是抽象类&#xff1f; 在java中有一个关键字叫&#xff1a;abstract&#xff0c;它就是抽象的意思&#xff0c;可以用它修饰类、成员方法abstract修饰类&#xff0c;这个类就是抽象类&#xff1b;修饰方法&#xff0c;这个方法就是抽象方法 认识抽象类 抽象类的注意事项…
最新文章