zoukankan      html  css  js  c++  java
  • 20150406--RBAC+添加字段栏目

    目录

    一、模型管理 1

    二、栏目管理 5

    三、内容管理 7

    四、RBAC的普通管理员登陆,。 8

    一、模型管理

    1、模型列表

    (1)在模型的控制器里面添加一个lst方法,用于模型数据的显示,并拷贝对应的静态页面

    wps325E.tmp

    wps32DC.tmp

    2、字段管理:

    (1)建立一张字段模型表

    #该表用于存储模型字段的信息。

    create table it_modelfield(

          id smallint primary key auto_increment,

          model_id tinyint not null comment '模型 的id',

          field_ename varchar(32) not null comment '字段的英文名称',

          field_cname varchar(32) not null comment '字段的中文名称',

          field_type varchar(32) not null comment '字段的类型',

          field_value varchar(32) not null comment '字段的默认值'

    )engine myisam charset utf8;

    (2)新建一个modelfield的控制器,并添加一个lst的方法,并拷贝对应的静态页面。

    wps330C.tmp

    在modelfield控制器里面的lst方法对应的静态页面中添加一个添加字段的链接。

    wps331C.tmp

    (3)在modelfield控制器里面添加一个add方法,用于添加该模型的字段信息。

    拷贝对应的静态页面,并添加字段信息的表单。

    wps337B.tmp

    不要忘了添加模型的隐藏域,表示添加的字段信息是哪个模型的。

    wps338C.tmp

    wps339C.tmp

    (4)新建一个modelfield的模型,并完成数据验证

    wps33FB.tmp

    (5)开始添加字段信息入库

    wps3479.tmp

    (6)使用钩子函数完成字段信息添加到附加表里面完成创建

    wps34D8.tmp

    wps34E8.tmp

    2、模型 的修改

    如果模型对应的附加表名修改了,则也要修改表名

    3、模型的删除

    如果要模型删除,要删除对应的附加表

    4、字段管理(修改)

    在字段修改时,要完成it_modelfield表里面信息的修改,还要完成附加表里面字段的修改。

    二、栏目管理

    和添加权限是一样的。使用无限极分类,在添加栏目的时候要指定当前栏目属于哪个模型。

    完成栏目表

    create table it_category(

          id smallint primary key auto_increment,

          cat_name varchar(32) not null comment '栏目的名称',

          parent_id smallint not null default 0 comment ' 父级栏目的id',

          model_id tinyint not null comment '模型 的id'

    )engine myisam charset utf8;

    1、添加栏目

    (1)新建一个栏目的控制器并添加add方法,并拷贝对应的静态页面。

    取出栏目数据和模型数据,

    在栏目的模型里面定义了getTree方法用于无限极取出数据

    wps34F9.tmp

    wps36BF.tmp

    遍历栏目数据

    wps36D0.tmp

    遍历模型数据

    wps372E.tmp

    (2)在模型里面添加数据验证,并完成栏目的添加

    wps374F.tmp

    2、栏目的列表

    3、栏目删除

    在栏目删除的时候,要判断有没有子栏目,如果有则不能删除,或和子栏目一块删除

    3、栏目的修改

    在栏目修改时,不能把自己的子孙栏目 当成父级栏目。

    三、内容管理

    根据模型附加表里面的字段生成表单, 添加具体的内容,

    思路:根据model_id从it_modelfield表里面取出具体的内容,

    字段的中文名称,根据类型生成具体的表单,根据默认值,具体生成单选按钮和复选框和下拉框。

    1、新建一个content的控制器,并添加add方法,并拷贝对应的静态页面。

    wps377F.tmp

    2、在静态页面中把取出的数据给遍历并生成对应的表单

    wps3A5E.tmp

    wps3AAD.tmp

    四、RBAC的普通管理员登陆,。

    1、根据管理员的权限生成左侧的权限按钮

    (1)在管理员的模型中定义一个函数,getMenus根据管理员的权限获取按钮

    wps3B5A.tmp

    wps3BA9.tmp

    wps3C47.tmp

    wps3CD4.tmp

    在index控制器里面left函数中,取出权限按钮,并遍历到静态页面。

    wps3E7B.tmp

    wps3E9B.tmp

    2、在管理员登录后,如果要某个操作,则要验证当前登录的管理员是否有权限。

    //验证的思路:在执行某个操作时,取出操作的所在控制器的名称,和操作的方法名称。

    根据登录的admin_id从it_privilege表里面取出controllername   actionname两个字段进行匹配

    wps410D.tmp

    wps41D9.tmp

    外连和内连的区别.

    class

    id    class_name

    1        a

    2        b

    3        c

    student

    id    stu_name    class_id

    1        s1         1

    2        s2         2

    3        s3         3

    4        s4         4

    5        s5         1

    a.class_id=b.id

    列出所有的学生以及学生所在的班级的名称。

    SELECT a.*,b.class_name FROM student a LEFT JOIN class b ON a.class_id=b.id(外连)

    id    stu_name    class_id   class

    1        s1         1        a

    2        s2         2        b

    3        s3         3        c

    4        s4         4        null

    5        s5         1        a

    SELECT a.*,b.class_name FROM student a,class b WHERE a.class_id=b.id(内连)

    id    stu_name    class_id   class

    1        s1         1        a

    2        s2         2        b

    3        s3         3        c

    5        s5         1        a

    image

  • 相关阅读:
    SimpleITK学习(二)图像读取
    SimpleITK学习(一)基本概念
    pydicom读取dicom文件报错
    【Python】模拟登录上海西南某高校校园网 (jaccount)
    Leetcode 5
    【C++】枚举类型及其用法
    Leetcode 617 合并二叉树
    【端口转发】如何在外面访问家里的内网计算机?
    Python字典列表字段重组形成新的字典
    Android使用JDBC连接数据库
  • 原文地址:https://www.cnblogs.com/lifushan/p/5471912.html
Copyright © 2011-2022 走看看