建立一个模块表,模快表里面有个admin_group_id,记录那些是管理员可以看到的,那些是用户的..那一目了然比如
用户模快  1,3 --1表示最高管理员,3表示用户
上传模块  1,2 --1表示最高管理员,2表示一般管理员

解决方案 »

  1.   

    建立一个模块表,模快表里面有个admin_group_id,记录那些是管理员可以看到的,那些是用户的..那一目了然比如
    用户模快  1,3 --1表示最高管理员,3表示用户
    上传模块  1,2 --1表示最高管理员,2表示一般管理员
      

  2.   

    到CSDN两年了,为什么我还是两个三角???
      

  3.   

    使用组很方便组表:
    组id/组名
    1/组1
    2/组2
    …………权限表:
    权限id/权限名
    1/权限1
    2/权限2
    3/权限3
    …………组 权限关联表:
    组id/权限id
    1/1
    1/2
    2/2
    2/4
    …………随意搭配,组1可能就是你的超管,组2是普管,你新建个组3,搭配一下,就是普通用户。新建组4,可能就是受限用户
      

  4.   

    看看dedecms的权限管理吧  我就是模仿的那种 我觉得非常灵活
      

  5.   

    我前两天也在弄这个权限问题,自己设计了几个表在zend auth下面使用的,搂主可以参考一下/*角色表
    -- id
    -- 用户名
    -- 密码
    -- 工作组 A,B,C...
    */
    DROP TABLE IF EXISTS role_acl;
    CREATE TABLE role_acl (
    id int(11) NOT NULL auto_increment,
    username varchar(30) NOT NULL,
    password varchar(20) NOT NULL,
    work_group char(1) NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=gbk;
    /*工作组
    -- id
    -- 工作组 A,B,C...
    -- 文字描述
    */
    DROP TABLE IF EXISTS group_acl;
    CREATE TABLE group_acl (
    id int(11) NOT NULL auto_increment,
    work_group char(1) NOT NULL,
    group_desc varchar(60) NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=gbk;
    /* 角色 资源 动作 映射表
    -- id
    -- 工作组 A,B,C...
    -- 资源代码
    */
    DROP TABLE IF EXISTS mapped_acl;
    CREATE TABLE mapped_acl (
    id int(11) NOT NULL auto_increment,
    work_group varchar(1) NOT NULL,
    resource varchar(20) NOT NULL,
    action varchar(20) NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=gbk;
    /*资源表
    -- id
    -- 资源代码
    -- 资源描述
    */
    DROP TABLE IF EXISTS resource_acl;
    CREATE TABLE resource_acl (
    id int(11) NOT NULL auto_increment,
    resource varchar(20) NOT NULL,
    resource_desc varchar(60) NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=gbk;
    /*动作表
    -- id
    -- action code
    -- action 描述
    */
    DROP TABLE IF EXISTS action_acl;
    CREATE TABLE action_acl (
    id int(11) NOT NULL auto_increment,
    action varchar(20) NOT NULL,
    action_desc varchar(60) NOT NULL,
    PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=gbk;
    数据库设计完毕,
    在里面添加一些测试数据
    INSERT INTO `role_acl` (`id`,`username`,`password`,`work_group`)
    VALUES (1,'admin','123456','A');
    INSERT INTO `role_acl` (`id`,`username`,`password`,`work_group`) VALUES (2,'hh','123','B');
    INSERT INTO `role_acl` (`id`,`username`,`password`,`work_group`) VALUES (3,'rl','1','C');
    INSERT INTO `role_acl` (`id`,`username`,`password`,`work_group`) VALUES (4,'yh','s','D');
    INSERT INTO `group_acl` (`id`,`work_group`,`group_desc`) VALUES (1,'A','管理员');
    INSERT INTO `group_acl` (`id`,`work_group`,`group_desc`) VALUES (2,'B','系统用户');
    INSERT INTO `group_acl` (`id`,`work_group`,`group_desc`) VALUES (3,'C','注册用户');
    INSERT INTO `group_acl` (`id`,`work_group`,`group_desc`) VALUES (4,'D','游客');
    INSERT INTO `mapped_acl` (`id`,`work_group`,`resource`,`action`)
    VALUES (1,'A','1000','view');
    INSERT INTO `mapped_acl` (`id`,`work_group`,`resource`,`action`) VALUES (2,'A','1000','edit');
    INSERT INTO `mapped_acl` (`id`,`work_group`,`resource`,`action`)
    VALUES (3,'A','1000','delete');
    INSERT INTO `mapped_acl` (`id`,`work_group`,`resource`,`action`)
    VALUES (5,'A','1001','view');
    INSERT INTO `mapped_acl` (`id`,`work_group`,`resource`,`action`)
    VALUES (6,'A','1002','view');
    INSERT INTO `mapped_acl` (`id`,`work_group`,`resource`,`action`)
    VALUES (9,'A','1001','delete');
    INSERT INTO `mapped_acl` (`id`,`work_group`,`resource`,`action`)
    VALUES (10,'A','1001','edit');
    INSERT INTO `resource_acl` (`id`,`resource`,`resource_desc`) VALUES (1,'1000','用户管理');
    INSERT INTO `resource_acl` (`id`,`resource`,`resource_desc`) VALUES (2,'1001','新闻管理');
    INSERT INTO `resource_acl` (`id`,`resource`,`resource_desc`) VALUES (3,'1002','修改密码');
    INSERT INTO `action_acl` (`id`,`action`,`action_desc`) VALUES (1,'view','查看');
    INSERT INTO `action_acl` (`id`,`action`,`action_desc`) VALUES (2,'edit','编辑');
    INSERT INTO `action_acl` (`id`,`action`,`action_desc`) VALUES (3,'delete','删除');
    上面的测试数据也可以看到 假设role_acl 表里面有一个 admin 角色
    admin 属于a 工作组, a 工作组可以访问的资源有1000 用户管理 1001 新闻管理 1002 修改
    密码,1000 里面admin 又有 view eidt delete 权限 1001 也有 view eidt delete 权限 1002 只
    有view 权限
      

  6.   

    说错了哦。是zend acl 不过表是没问题的
      

  7.   

    管理员设定管理用户组,普通管理员必须有所属组,然后设定组权限。
    主要有以下几个表
    组表
    管理员表
    菜单表(包括主菜单和子菜单)
    权限表
    (注:需要设定一个权限表,包括用户ID,和菜单ID)
      

  8.   

    管理员设定管理用户组,普通管理员必须有所属组,然后设定组权限。
    主要有以下几个表
    组表
    管理员表
    菜单表(包括主菜单和子菜单)
    权限表
    (注:需要设定一个权限表,包括用户ID,和菜单ID)
      

  9.   

    我到网上搜了下,发现RBAC(role-based Access Control) 基于角色的访问控制
    有研究过RBAC的嘛?