找回密码
 立即注册
收起左侧

关于QSqlite数据库权限问题

3
回复
6522
查看
[复制链接]
累计签到:18 天
连续签到:1 天
来源: 2016-8-24 10:23:12 显示全部楼层 |阅读模式
1Qter豆
设计了个登录界面,LoginDlg登录后进入主窗口,有个UserManager的下拉菜单,需要设置权限,只有超级用户才能访问;
其他功能均以实现,就是这个权限的弄不出来。。。求大神解答,(个人疑问是如何确定当前登录用户的数据情况)

回复

使用道具 举报

尚未签到

2016-8-25 23:38:26 显示全部楼层
建个user表,弄一列叫权限的不就行了?登录时候判断这个位置再决定显示什么界面嘛
回复

使用道具 举报

累计签到:18 天
连续签到:1 天
2016-8-26 09:04:38 显示全部楼层
Joey_Chan 发表于 2016-8-25 23:38
建个user表,弄一列叫权限的不就行了?登录时候判断这个位置再决定显示什么界面嘛 ...

谢谢回复,我在user表里建了一个role表关联的外键,就是不知道如何判断登陆时的位置。。小弟新人,qt这方面的教学实在有点少。。能否简单的写下
void MainWindow:n_actionUserManager_U_triggered()
{

  if(如何判断user中role的数值,或者是role表中的数值)
  {
        usermanagerdlg UDlg;
       UDlg.exec();
   }else{
        QMessageBox::warning(this, QString::fromLocal8Bit("Warning!"), QString::fromLocal8Bit("Need SuperAdmin!"));
    }
}

user表与role表的建立
QSqlQuery query;
    query.exec("create table user (id int primary key, name vchar , password vchar , role int)");
    query.exec("insert into user values (1,'001','1',1)");
    query.exec("insert into user values (2,'002','1',2)");
    query.exec("insert into user values (3,'003','1',2)");

    query.exec("create table role (id int primary key, name vchar)");
    query.exec("insert into role values (1,'SuperAdmin')");
    query.exec("insert into role values (2,'Admin')");
回复

使用道具 举报

尚未签到

2016-8-28 02:47:51 显示全部楼层
331776051 发表于 2016-8-26 09:04
谢谢回复,我在user表里建了一个role表关联的外键,就是不知道如何判断登陆时的位置。。小弟新人,qt这方 ...

其实不需要什么role表的啦哈哈,直接用二进制的每一位来判断就行嘛,举个例子:

role 是 16位int,那么二进制就是16个0或1,每一位都赋予一种权限,那么直接判断这些0或1就知道是什么权限了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了