人员权限管理

   根据RBAC模型的权限设计思想,建立权限管理系统的核心对象模型.对象模型中包含的基本元素主要有:用户(Users)、用户组(Group)、角色(Role)、控制对象(Resource Class)、访问模式(Access Mode)、操作(Operator)。所以在这里,我们用到了四张数据库中的表格,分别如图所示:

  首先写的是登录页面 通过登录某个账号,然后看到此用户的权限,为了页面的美观,我用到了bootstrap

先要引进bootstrap 

<link rel="stylesheet" href="https://cdn.static.runoob.com/libs/bootstrap/3.3.7/css/bootstrap.min.css">
    <script src="https://cdn.static.runoob.com/libs/jquery/2.1.1/jquery.min.js"></script>
    <script src="https://cdn.static.runoob.com/libs/bootstrap/3.3.7/js/bootstrap.min.js"></script>
    <style type="text/css">
        *{margin: 0px auto;padding: 0px}
    </style>
 1 <div class="panel panel-info" style="width: 500px">
 2     <div class="panel-heading">
 3         <h3 class="panel-title">登录</h3>
 4     </div>
 5     <div class="panel-body">
 6        用户名:<input type="text" id="uid"/><br/><br>
 7         密&nbsp;&nbsp;&nbsp;&nbsp;码:<input type="password" id="pwd"/><br>
 8         <input type="button" value="登录" id="btn"/>
 9     </div>
10 </div>

登录页面完成后,效果如图所示: 相对来说还算是比较美观的,调一下长度可能效果会更好

因为是练习,所以我整体用的是ajax,因为我觉得自己的ajax写的不够熟练,而且ajax在用的时候不会刷新页面,这点是比较好的

<script type="text/javascript">
    $("#btn").click(function(){

            var uid=$("#uid").val();   //取出用户名输入框的值
             var pwd=$("#pwd").val();//取出密码输入框的值

            $.ajax({
                     url:"logincl.php",  //登录处理页面
                     data:{uid:uid,pwd:pwd},
                      type:"POST",
                     dataType:"TEXT",
                     success:function(data){
                        if(data.trim()=="OK") //去除空格用trim();
                            {
                                window.location.href = "main.php";
                            }
                        else{
                              alert("用户名或者密码错误");
                            }
                    }
             })

         })
</script>

登录页面的处理页面如下:

 1 <?php
 2 session_start();
 3 include ("DADB.class.php");
 4 $db=new DADB();
 5 $pwd=$_POST["pwd"];  //先把传递过来的值取到
 6 $uid=$_POST["uid"];
 7 $sql="select pwd from users WHERE uid=‘{$uid}‘ ";
 8 $arr=$db->Query($sql);
 9 if($arr[0][0]=$pwd && !empty($pwd))
10 {
11     $_SESSION["uid"]=$uid; //把uid的值存储
12      echo"OK";
13 }
14 else{
15     echo"flase";
16 }

这样登录页面完成后,如果输入正确就会进到main.php页面,这个页面主要是用来显示用户扮演的角色所执行的功能的

 1 <script src="jquery-3.1.1.min.js"></script> //因为用的ajax首先要引入的是jquery包
 2
 3
 4 <table id="rule" >
 5
 6 </table>
 7
 8 </body>
 9 <script type="text/javascript">
10     $.ajax({
11         url:"miancl.php",
12         dataType:"TEXT",
13         success:function(data)
14         {
15            var hang=data.split("|");
16             str="";
17             for(var i=0;i<hang.length;i++)
18             {
19               var lie=hang[i].split("^");
20                 str +="<tr><td>"+lie[0]+"</td></tr>";
21             }
22             $("#rule").html(str);
23
24         }
25
26     })
27
28
29 </script>

miancl.php是主页面的处理页面,主要是逻辑方面的问题,我用的是select 套select的方法来写的,还算是比较简单一些

 1 <?php
 2 session_start();
 3 $uid=$_SESSION["uid"];
 4
 5 include("DADB.class.php");
 6 $db=new DADB();
 7 //查出来的是uid对应的jueseid
 8 //$sql1="SELECT juseid from userinjuese WHERE userid=‘{$uid}‘";
 9 $sql="SELECT name from  rules where code in(select ruleid from juesewithrules
10 WHERE jueseid in(select jueseid from userinjuese where userid=‘{$uid}‘)) ";
11
12 //查询出来的是 功能
13 echo $db->StrQuery($sql);

 这样就可以把这个小功能完成的呈现出来了

下面的代码是为了实现管理人员 修改用户的角色的功能,这个实现起来可能要相对麻烦一点点

<body>
    <div><h3>请选择用户:</h3>
         <select id="xz"></select>
   </div>

<div>
    <h3>请选择角色:</h3>
    <div id="js"></div>

</div>
<br/><br/>
<div><input type="button" value="保存" id="btn"/></div>
</body>
</html>
<script type="text/javascript">

    //下拉列表的ajax
    $.ajax({
        url:"chuli1.php",
         dataType:"TEXT",
        success:function(data){
           var hang=data.split("|");
            str="";
            for(var i=0;i<hang.length;i++)
            {
               var  lie=hang[i].split("^");
                str +="<option value=‘"+lie[0]+"‘>"+lie[2]+"</option>";
            }
            $("#xz").html(str);
        }
    })
   //复选框的
    $.ajax({
        url:"chulijs.php",
        dataType:"TEXT",
        success:function(aa){

            var hang=aa.split("|");
            str="";
            for(var i=0;i<hang.length;i++)
            {
                var  lie=hang[i].split("^");
                str +="<input class=‘ck‘ type=‘checkbox‘ value=‘"+lie[0]+"‘/>"+lie[1];
            }
            $("#js").html(str);
        }
    })

    $(document).ready(function(e) {
        //选中默认角色
        Xuan();
        //当用户选中变化的时候,去选中相应角色
        $("#xz").change(function(){
            Xuan();
        })
        //点击确定保存角色信息
        $("#btn").click(function(){
            var uid = $("#xz").val();
            var juese = "";   //取jueseid的值
            var ck = $(".ck");
            for(var i=0;i<ck.length;i++)
            {
                if(ck.eq(i).prop("checked"))
                {
                    juese += ck.eq(i).val()+"|";
                }
            }
            juese = juese.substr(0,juese.length-1);
            $.ajax({
                url:"baocun.php",
                data:{uid:uid,juese:juese},
                type:"POST",
                dataType:"TEXT",
                success: function(data){
                   if(data.trim()=="OK")
                   {
                       alert("保存成功")
                   }
                }

            });
        })
    });
    //选中默认角色
    function Xuan()
    {
        var uid = $("#xz").val();
        $.ajax({
            url:"lianjie.php",
            data:{uid:uid,},
            type:"POST",
            dataType:"TEXT",
            success: function(data){
                var juese = data.trim().split("|");
                var ck = $(".ck");
                ck.prop("checked",false); //先清除选中的
                for(var i=0;i<ck.length;i++)
                {
                    if(juese.indexOf(ck.eq(i).val())>=0) //indexOf用来判断是不是在juseid是不是在复选框中出现过
                    {
                        ck.eq(i).prop("checked",true);
                    }
                }

            }
        });
    }
</script>

chulijs.php页面代码如下:

1 <?php
2 include("DADB.class.php");
3 $db=new DADB();
4 $sql="select * from juese";
5 echo $db->StrQuery($sql);

lianjie.php 页面代码如下:

1 <?php
2 $uid=$_POST["uid"];
3 include("DADB.class.php");
4 $db=new DADB();
5 $sql="select jueseid from userinjuese where userid=‘{$uid}‘";
6 //搜索的是jueseid 是因为之前value的值是主键值
7 echo $db->StrQuery($sql);

baocun.php 代码如下:

<?php
$uid = $_POST["uid"];
$juese = $_POST["juese"];
include("DADB.class.php");
$db=new DADB();
$sdel = "delete from userinjuese where userid=‘{$uid}‘"; //在添加之前先把用户之前的功能清除
$db->Query($sdel,0);
$arr = explode("|",$juese);
foreach($arr as $v)
{
    $sql = "insert into userinjuese values(‘‘,‘{$uid}‘,‘{$v}‘)";
    $db->Query($sql,0);
}
echo "OK";

写到这里就可以把所需要的功能完全实现了

时间: 2024-08-11 03:50:09

人员权限管理的相关文章

php之 人员的权限管理

1.想好权限管理的作用? 2.有什么权限内容? 3.既然有权限管理那么就会有管理员? 4.登录后每个人员的界面会是不一样的? 一.想好这个权限是什么? 就做一个就像是vip的功能,普通用户和vip用户的功能是不一样的,先来考虑一下数据库怎么设计 肯定要有用户表.还有用户所用的角色.然后就是权限功能表:可是在这里面有关联也就 是会另外有两张相互关联的表,这样也就是5张表 在数据库中建好这五张表: (1)用户表.角色表.功能表       (2)主表中的外键关系得两个表:用户与角色表.角色与功能表

MySQL数据库(7)_用户操作与权限管理、视图、存储过程、触发器、基本函数

用户操作与权限管理 MySQL用户操作 创建用户 方法一: CREATE USER语句创建 CREATE USER "用户名"@"IP地址" IDENTIFIED BY "密码"; 方法二: INSERT语句创建 INSERT INTO mysql.user(user,host, password,ssl_cipher,x509_issuer,x509_subject) VALUES('用户名','IP地址',password('密码'),'',

如何使用php设计权限管理数据库

很多网站管理员都想获得php权限,admin,或者root.但如何使用php设置管理员数据库呢? 万事开头难,这里介绍一下. 首先在B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户的权限检测可以通过客户端实现或通过客户端+服务器检测实现,而B/S中,浏览器是每一台计算机都已具备的,如果不建立一个完整的权限检测,那么一个"非法用户"很可能就能通过浏览器轻易访问到B/S系统中的所有功能.因此B/S业务系统都需要有一个或多个权限系统来实现访问权限检测,让

Android6.0M权限管理实战,完美轻量级封装

转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53189359 本文出自[DylanAndroid的博客] Android6.0M权限管理实战,完美轻量级封装 随着Android版本的不断更新,Android再权限管理方面的诟病越来越明显.Google的Android开发人员也意识到了Android应用在权限管理方面的各种问题,让好多用户摸不着头脑就使用了用户的隐私数据. 为了在权限这方面加强管理,给用户一个比较好的体验.A

用最基本的EF+MVC+JQ+AJAX+bootstrap实现权限管理的简单实例 之登陆和操作权限

先来一堆关于上篇文章的废话(不喜者点此隐藏) 今天把博客加了个小功能,就是点标题可以隐藏或展示相关内容,做法很傻,就是引用了bootstrap的两个css类和全部的js文件,其实这样的小功能完全应该自己做的,主要还是因为前端差,还有就是懒.请大家不要太过在意命名和前端样式,我并没有进入公司工作,命名没有具体规范,都是随心所欲.前端实在太差,如果你觉得颜色样式太差,只能说明我的审美有问题,咱们主要看功能实现. 上篇文章发布后有一定的推荐量和浏量,对一个初学者来说,自认为还是挺不错的.最主要的是收到

DDDLite的权限管理

领域驱动设计实战—基于DDDLite的权限管理 在园子里面,搜索一下“权限管理”至少能得到上千条的有效记录.记得刚开始工作的时候,写个通用的权限系统一直是自己的一个梦想.中间因为工作忙(其实就是懒!)等原因,被无限期搁置了.最近想想,自己写东西时,很多都是偏理论方面的,常常找不到合适的例子来论证自己的观点.于是用业余时间来写点东西. 园子中的权限管理系统有以下几种: 写的好的,界面NB的,但不开源,毕竟人家辛辛苦苦的劳动成果: 写的好的,也公开源码,但不公开数据库设计和一些流程设计,你得看着源码

oracle学习之权限管理

       在创建用户之后,用户不能干任何事情,登录数据库都会报ORA-01045: user XIAOMING lacks CREATE SESSION privilege; logon denied错误.这时我们就应该给用户授权.先来了解Oracle的权限管理. 一.权限概述        Oracle数据库是利用权限来进行安全管理的,权限是Oracle安全机制重要组成部分.这些权限可以分了两类:系统权限和对象权限. 系统权限:系统权限是指在系统级控制数据库的存取和使用的机制,即执行某种语

Jenkins配置基于角色的项目权限管理

 本文将介绍如何配置jenkins,使其可以支持基于角色的项目权限管理. 由于jenkins默认的权限管理体系不支持用户组或角色的配置,因此需要安装第三发插件来支持角色的配置,本文将使用Role Strategy Plugin,介绍页面:https://wiki.jenkins-ci.org/display/JENKINS/Role+Strategy+Plugin 1.配置插件 安装插件后,进入系统设置页面 配置如下: 2.配置权限 在系统管理页面点击Manage and Assign Ro

Linux下用户组和权限管理

前言:此次验证操作环境为CentOS7.3,及CentOS6.9. 人员账号的管理是身为运维人员必要掌握的技能之一.其工作中的用途甚至比文件安全.软件配置更为广泛.对用户组及其相关权限有个清晰的认识,有利于我们工作学习的开展.下面就我个人理解,在此斗胆做个总结. 我们知道,当用ll或ls –l去查看目录下文件时,往往会得到如下的结果. drwxrwxr-x. 2 magedu magedu 6 Jul 21 21:03 magedu -rw-r--r--. 1 root   root   0 J