简单的权限管理系统

最近在网上学习了一些权限管理系统,发现都差不多,只是复杂一些的权限管理系统分的更加细致,考虑的因素也越多。权限管理模块就是为了管理用户是否有权利访问某个权限,如果不能则拒绝访问。而我自己也做利用了jfinal做了一个简单的权限管理系统。小弟不精,可能还有些错误,请大家指明.
还有就是这里数据的表不对应贴出来的代码的表
数据库:
表1:super administrator (对应代码的teacher) 超级管理员的账号密码
表2:administrator 存储普通的管理员的账号密码
表3:administrator_message (对应代码的groups) 普通管理员的基本信息
表4:students
表5:student_message (对应代码的message)
表创建对应的id,name,age,sex,remark属性等

超级管理员inori:可以对学生进行增删改查,对其他管理员进行权限分配
普通的管理员miku:只能查看学生信息和增加学生
普通的管理员Alan:只能查看学生信息和修改学生信息
普通的管理员shiro:只能查看学生信息和删除学生
学生:只能查看自己的基本信息

我是在上两篇jfinal的基础上进行修改,只贴权限管理的部分代码
登录时的验证

package com.login;

import java.util.List;

import com.Interceptor.LogInterceptor;
import com.Permissions.Groups;
import com.jfinal.aop.Before;
import com.jfinal.core.Controller;
import com.jfinal.ext.render.CaptchaRender;
import com.students.students;
import com.teachers.teachers;

import net.sf.json.JSONObject;

public class loginControler extends Controller
{
    
    public void index()
    {   
        render("login.jsp");
    }
    
    public void login()
    {
        String username=getPara("username");
        String password=getPara("password");
        String sql="select * from teachers where username='"+username+"' and password='"+password+"'";
        List list=teachers.dao.find(sql); 
        //验证超级管理员身份
        if(list.size()!=0 )
        {
            redirect("/choose");
        }
        else 
        {
            sql = "select * from Administrator where username='"+username+"' and password='"+password+"'";
            list=teachers.dao.find(sql);
            if(list.size()!=0)
            {
                sql="select * from groups where name=(select name from Administrator where username='"+username+"' and password='"+password+"')";
                List groupslist=Groups.groups.find(sql);
                setSessionAttr("groupslist", groupslist);
                redirect("/students");
            }
        }   
        String str="select * from message where school_id='"+username+"' and password='"+password+"'";
        List student=students.students.find(str);
        System.out.println(student.toString());
        //验证学生登录身份
        if(student.size()!=0 )
        {
            str="select * from students where name=(select name from message where school_id='"+username+"' and PASSWORD='"+password+"')";
            List stu=students.students.find(str);
            setAttr("student", stu);
            render("/message/message.jsp");
        }
    }
}

这是普通管理员的模块

package com.Permissions;

import com.jfinal.plugin.activerecord.Model;
//管理员模块
public class Groups extends Model 
{
    public static final Groups groups=new Groups();

}

这是超级管理员登录的时能够看到的全部普通管理员基本信息模块

package com.Permissions;

import java.util.ArrayList;
import java.util.List;

import com.jfinal.core.Controller;

public class PermissionsGroups extends Controller 
{
    public void index()
    {
        List groupslist=Groups.groups.find("select * from groups");
        setAttr("groups", groupslist);
        render("list.jsp");
    }
    public void form()
    {
        Groups group=Groups.groups.findById(getParaToInt(0));
        if(group==null)
        {
            render("form.jsp");
        }
        else
        {
            setAttr("group", group);
            render("form.jsp");
        }

    }
    public void add()
    {
        Groups group=getModel(Groups.class,"group");
        group.save();
        redirect("/PermissionsGroups");
    }
    public void edit()
    {
        form();
    }
    public void delete()
    {
        Groups.groups.deleteById(getParaToInt(0));
        index();
    }
    /**
     * 注销账号
     */
    public void logout()
    {
        redirect("/login");
    }
}

下面是超级管理员对普通管理员团队进行增删改查
接下来是前端显示的页面:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 




Insert title here



    
        

欢迎${groupslist.name}

学生信息

姓名 年龄 性别 备注 操作
${student.name} ${student.age} ${student.sex} ${student.remark}
总页数 ${pagination}/${page} 首页 上一页 下一页 尾页

这是form.jsp表单

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 




Insert title here


    
checked="checked"value="男"> 男
checked="checked"value="女"> 女

这是超级管理员登录界面

简单的权限管理系统_第1张图片
搜狗截图17年10月28日1011_1.png

接下面是各个管理员的权限

简单的权限管理系统_第2张图片
搜狗截图17年10月28日1019_2.png
简单的权限管理系统_第3张图片
搜狗截图17年10月28日1020_3.png
简单的权限管理系统_第4张图片
搜狗截图17年10月28日1020_4.png

接下面是源码链接(附上数据库): https://pan.baidu.com/s/1nuCZwWp 密码: bpxa
总结:其实刚开始做的时候没怎么想清楚要怎么做,就先做的先,后面慢慢摸索到技巧了,前面的东西要想规范化,就要全部修改。这个坏习惯一定会改!!!。这个简单权限管理系统思路就是

简单的权限管理系统_第5张图片
无标题.png

你可能感兴趣的:(简单的权限管理系统)