struts用户管理,用户管理教程,用户管理流程讲解,权限管理

上一段做了struts 的用户管理

没有参考别人的用户管理案例,自己想了一套管理的流程,可控制到每个用户的增删改查的权限

Struts 用户管理

描述:

分层管理,最高层à单位层à部门层à员工层

 

数据库:oracle9i

两个表KKYH表和KKBMQX

1KKYH

保存用户的一些基本信息和基本权限

 

 

 

ID 用户名 非空 主键约束 

PASSWORD

密码  非空  
DW 单位 非空  
IDCR 添加权限 非空 1为有权限,0为无权限
IDCK 查看权限 非空 1为有权限,0为无权限
IDSC 删除权限 非空 1为有权限,0为无权限
IDCJ   超级权限 非空 1为有权限,0为无权限
IDZX 查看注销过记录权限 非空 1为有权限,0为无权限
BM 部门 非空  
DWIDCJ 单位管理员  非空 1为有权限,0为无权限
IP 注册时客户机IP  可空  
     

 

 

 

注意:KKYH里添加记录的话,必须同时要为KKBMQX表里也插入一条IDDWBM相同的记录

 

 

保存用户的部门权限

 

 

 

   

ID 用户名 非空 KKYHID相同
DW 单位 非空 KKYHDW相同
BM 部门权限 非空 KKYHDW相同

 

演示:

以超级管理员用户登陆,不会受到任何功能上的限制

 

 

 

 

点击【用户权限管理】,会列出KKYH表中所有单位,当然,需要去掉重复单位;

 

 

 

 

单位多的话就做成分页显示

下面我们点击一个单位名字,进入看下成员管理页面

 

注意1非超级管理员与单位管理员进不到这个管理页面,如果访问则出现提示

注意2单位管理员只能管理自己所在单位的成员,点击其他单位则出现图附1提示

 

 

 

 

 

 

在成员管理页面,可以通过勾选用户名前边的复选框,来实现对成员的管理,可以使成员具有添加记录,删除记录,查看注销后记录(普通查看权限),查看全部记录(超级查看权限),超级管理员和单位管理员的权限,也可以删除用户,权限更改之后,不需要用户重新登陆便可获得更改后的权限且更改后的权限立即显示在页面上

 

注意:如果是以单位管理员登陆则设置超级管理员的按钮将不可见

如果想更改某个用户的部门权限,就点击那个用户的用户名,进入到部门权限管理页面

  

 

 

 

 

 

>>】按钮为把部门权限添加给用户

<<】按钮为把用户的部门权限删除

 

 用户注册:

1、超级管理员的用户注册页面:

 

 

超级管理员登陆后可以添加任何单位的用户,还可以添加超级管理员和单位管理员用户

【注册】将注册一个为有添加和查看自己部门数据权限的用户

【注册超级管理员】将注册一个级别为最高的管理员用户,可以查看任何公司和个人的数据

【注册单位管理员】将注册一个级别为超级管理员的下一级的用户,可以查看本用户所在公司所有部门的数据

 

2、单位管理员注册页面:

 

 

单位管理员登陆后可以添加本单位的普通用户和本单位的管理员用户,不可添加其他单位的用户,[单位]只用来显示本人所在单位,不可更改

【注册单位管理员】将注册一个级别为超级管理员的下一级的用户,可以查看本用户所在公司所有部门的数据

 

3、普通用户注册页面:

 

 

普通用户登陆后可以添加本单位的普通用户,不可添加其他单位的用户,[单位]只用来显示本人所在单位,不可更改

 

控制:(部分)

 

首先用户登陆要保存用户的权限信息

写一个User类来封装起来

package domain;

import java.util.List;

public class UserInfo {

    

    private String sessionIDCR;

    

    private String sessionIDSC;

    

    private String sessionIDCK;

    

    private String sessionIDCJ;

    

    private String sessionLRDW;

    

    private String sessionIDZX;

    

    private String sessionBM;

    

    private List sessionBMQX;

    

    private String sessionDWIDCJ;

 

    getters/setters

}

UserInfo userInfo = userLoginSQLBean.userInfo(userLoginForm);

session.setAttribute("userInfo", userInfo) ;

 

 

用法:例1,无单位管理权限和超级权限不许访问

UserInfo user = (UserInfo )session.getAttribute("userInfo");

 

if(!user.getSessionDWIDCJ().equals("1"))

       {

           if(!user.getSessionIDCJ().equals("1"))

           {

              return mapping.findForward("userNoManage_Succeed");

           }

       }

 

 

 

2,用户abcd,拥有市场部和开发部的权限,那么只能允许他查看市场部的资料,用sql语句控制就可以了

SELECT hmd.ip as ip,hmd.bm as bm FROM kk.kkhmd hmd,kk.kkyh yh,kk.kkbmqx bmqx WHERE yh.id = 'abcd' and hmd.lrdw = 'XXX公司' and bmqx.bm in ('市场部', '开发部') and yh.id=bmqx.id and hmd.bm=bmqx.bm

当然这个是静态sql,用的时候需要写成动态的拼凑sql

 

后记:当然这只是我的个人方法,权限的控制可以放在filter里做,万一将来有更改的话,会轻松很多

 

黑色头发  http://heisetoufa.iteye.com

 

 

 

 

你可能感兴趣的:(sql,struts)