权限的简单想法

1.users是用户表,userid是从sequence得到的唯一序号,作为主键,下面的触发器方便每次插入分配唯一的序列,其他表也可以参考于此.

1.权限每个人进来看到不同的内容,有着不同的功能.比如boss可以设置下面人的权限,权限放大,权限缩小.开辟新权限,分配角色,角色分配人员,权限分配这些等等.

CREATE OR REPLACE TRIGGER users_trigbefore insert on usersfor each
rowdeclareseq_val number;beginselect s_userid.nextvalinto seq_val
from dual;:new.userid := seq_val;end;

2.具体的shiro还是喜欢自己做权限的还是自己决定吧,用了shiro,退出之后,起作用啦.自己做权限ajax即使的做刷新,用着是方便,就是太费时间.

2.org是部门表,其中orgid是当前部门id,porgid是上级目录id,像这种有父子关系的表中做从某一部门向上或向下的查询用到了oracle的connect
by语句:

3.举个例子,boss给一个部门经理一些权限,部门经理可以把自己的权限发放给其他人,比如手下的高管..等等.这个比较的细致.(我自己的权限可以分派给其他的人员)

select * from org connect by prior orgid=porgid start with orgid=1

4.sql语句.如下:

//从部门id为1的部门寻找所有子部门

      2017.6.16查询人员全部的角色:

select * from org connect by prior porgid=orgid start with orgid=1

      当前人员的所有角色,count(1) 大于0 的是自己,否则是其他

//从部门id为1的部门寻找所有父部门

  select *,(select COUNT(1) from t_users_roles t where ” +
“t.role_id = r.id and t.user_id = ” + id
                + “) ” + “verifynum from t_role r

3.用户,角色,权限关系处理

     2017.6.16查询功能全部的角色:count(1) 大于0 的是自己,否则是其他

角色表里有角色的模块权限,用1和0表示,1表示有,0表示无,如果系统有10
个模块,则每一角色的权限用10位的01来表示,用户被赋予角色,一个用户可以有多个角色,相对与用户的权限就是所有它拥有角色的权限字段做与操作的结果.

     String sql = “select *,(select COUNT(1) from t_roles_permissions

                      + “t where t.role_id = r.id and t.permission_id
= “+id+”)”
                      + ” verifynum from t_role r”;

strSql = “select substr(power,” modID “, 1) as rightbit from role where
roleid in(select roleid from role_user where userid in(select userid
from users where loginname=” strLoginName “))”

     增加角色人員表:String sql = “insert into t_users_roles
values(“+userid+”,”+roleid+”)”;

//列出了当前用户所拥有角色对当前模块的权限结果集中如果有1则用户有权限,如果全为0则没有权限.

   删除角色人员表:    String sql = ” insert into t_roles_permissions
values(“+roleid+”,”+permissionid+”)”;

    修改角色表 :String sql = “update t_role set name = ‘”+name+”‘,code
= ‘”+code+”‘ where id = ” + id;

    根据用户id查询角色权限主菜单.

    String sql = “select min(id),module from dbo.t_permission where
id in”
                    +”(select permission_id from
dbo.t_roles_permissions where role_id in”
                    +”(select role_id from dbo.t_users_roles where
user_id = “+id+”))”
                    +”and module is not null group by module order by
module desc”;

  根据主菜单功能查询所属子菜单

      String sql = “select info,code from dbo.t_permission”
                + ” where module = ‘”+module+”‘ and nosecone = 0″
                + ” and info is not null order by id asc”;

查询角色所有功能:

    String sql = “select *,(select COUNT(1) from
t_roles_permissions t where “
                    + “t.permission_id = p.id and t.role_id = “+id+” )
verifynum”
                    + ” from  t_permission  p order by module desc”;
删除角色功能表 :

             String sql = “delete from t_roles_permissions where 
permission_id = “+id+””;

增加角色功能表:

    String sql = “insert into t_roles_permissions values
(“+id+”,”+permissionid+”)”;

查找当前角色的人员:   

  String sql = “select *,(select COUNT(1) from t_users_roles r 
where r.user_id = u.id “
                    + “and r.role_id = “+id+” ) verifynum from”
                    + ” t_user u;”;

 

相关文章