权限管理

Posted 颠覆整个世界

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了权限管理相关的知识,希望对你有一定的参考价值。

权限管理,一般指根据系统设置的安全规则或者安全策略,用户可以访问而且只能访问自己被授权的资源,我们所做就是为了实现这一功能。

1.main.php页面:

通过ajax可以在当前页面实现对用户的管理权限进行设定,可显示已经设定好的权限,可以增删

2.chuli.php页面:

通过用户代号找到相应的角色代号,将数据传回main.php页面,实现现有权限的选中状态

3.add.php页面;

点击确定按钮,将用户及选中的权限值传到该页面进行操作,添加到数据库

4.log.php页面;

通过用户名,密码登录

5.logchuli.php页面:

判断用户名,密码是否一致,成功登录主页面,及可使用功能页面

6.zhuye.php页面;

将已经设定好的权限显示出来,每个人的限制不同显示的功能不同

 

 

 

main.php页面:

复制代码
<head>
<script src="../jquery-2.2.3.min.js"></script>
</head>

<body>
<h1>管理权限</h1>
<div>请选择用户:
<select id="user">
<?php
include("../DBDA.class.php");
$db = new DBDA();
$sql = "select * from userso";
$attr = $db->Query($sql);
foreach($attr as $v)
{
    echo "<option value=\'{$v[0]}\' >{$v[2]}</option>";
}

?>
</select>
</div>


<div>请选择角色:</div>
<div>
<?php
$sqljs = "select * from juese";
$attr = $db->Query($sqljs);

foreach($attr as $v)
{
    echo "<input type=\'checkbox\' value=\'{$v[0]}\' class=\'js\'/>{$v[1]}";
}
?>
</div>

<div><input type="button" value="确定" id="btn" /></div>

</body>

<script type="text/javascript">
$(document).ready(function(e) {
    ShowJueSe();
    
    $("#user").change(function(){
    
         ShowJueSe();
        })
        function ShowJueSe()
        {
            var uid = $("#user").val();
        $.ajax({
            url:"chuli.php",
            data:{uid:uid},
            type:"POST",
            dataType:"TEXT",
            success: function(data){
                
                var shuju = data.split("|");//角色名
                var ck = $(".js");//所有复选框
                ck.prop("checked",false);
                for(var i =0;i<ck.length;i++)
                {
                    var v = ck.eq(i).val();
                    if($.inArray(v,shuju)>=0)
                    {
                        ck.eq(i).prop("checked",true);
                    }
                    
                
                }
                }
            
            });
        }
        
        $("#btn").click(function(){
            
            var uid = $("#user").val();
            var ck = $(".js");
            var str = "";
            for(var i=0;i<ck.length;i++)
            {
                if(ck.eq(i).prop("checked"))
                {
                    str = str+ck.eq(i).val()+"|";
                
                }
            }
            str = str.substr(0,str.length-1);
            $.ajax({
                url:"add.php",
                data:{uid:uid,juese:str},
                type:"POST",
                dataType:"TEXT",
                success: function(data){
                    
                    if(data.trim()=="OK")
                    {
                        alert("操作成功");
                    }
                    else
                    {
                        alert("操作失败");
                    }
                    
                    }
                });
            
            })
});

</script>
复制代码

chuli.php:

复制代码
<?php
$uid = $_POST["uid"];
include("../DBDA.class.php");
$db = new DBDA();

$sql = "select JueSeId from UserInJueSe where userid=\'{$uid}\'";

echo $db->StrQuery($sql);
复制代码

add.php:

复制代码
<?php
include("../DBDA.class.php");
$db = new DBDA();

$bs = true;
$uid = $_POST["uid"];
$juese = $_POST["juese"];
$juese = explode("|",$juese);
//清空角色信息
$sqldel = "delete from userinjuese where userid=\'{$uid}\'";
if(!$db->Query($sqldel,0))
{
    $bs = $bs && false;
}


//添加角色信息
foreach($juese as $v)
{
 $sql = "insert into userinjuese values(\'\',\'{$uid}\',\'{$v}\')";
 //echo $sql;
 if(!$db->Query($sql,0))
 {
     $bs = $bs && false;
 }
}
if($bs)
{
    echo "OK";
}
else
{
    echo "NO";
}
复制代码

登录页面log.php:

复制代码
<body>
<form action="logchuli.php" method="post">
<div>用户名:<input type="text" name="uid" /></div>
<div>密码:<input type="text" name="pwd" /></div>
<input type="submit" value="登录" />
</form>
</body>
复制代码

logchuli.php:

复制代码
<?php
session_start();
$uid = $_POST["uid"];
$pwd = $_POST["pwd"];

include("../DBDA.class.php");
$db = new DBDA();
$sql = "select count(*) from userso where username=\'{$uid}\' and password=\'{$pwd}\'";

$z = $db->StrQuery($sql);

if($z ==1)
{
    $_SESSION["username"] = $uid;
    header("lcation:zhuye.php");
}
else
{
    header("lcation:log.php");
}
复制代码

 

zhuye.php:

复制代码
<head>
<?php
session_start();
//判断username是否为空

if(empty($_SESSION["username"]))
{
    header("location:login.php");
    exit;
}
$uid = $_SESSION["uid"];

include("../DBDA.php");
$db = new DBDA();
?>


//对菜单进行样式设置
<style type="text/css">
*{ margin:0px auto; padding:0px}
#menu{
    width:100%;
    height:40px;
    }
.cd{
    width:100px;
    height:40px;
    background-color:#60C;
    color:white;
    font-size:18px;
    text-align:center;
    line-height:40px;
    vertical-align:middle;
    float:left;
    }
.cd:hover{
    
    background-color:#F33;
    cursor:pointer;
    
    }
</style>

</head>


<body>
<br />
<center><h1>主页面</h1></center>
<br />
<a href="log.php">退出 </a>
<br />
<br />
<br />
<div id="menu">
    <div class="cd">权限管理</div>
    
    <?php
    
    //根据用户名找到所对应的角色代号
    $sjs = "select JueSeId from UserInJueSe where UserId =\'{$username}\' ";
    
    $ajs = $db->Query($sjs);
    
    //根据角色代号找到对应的功能
    $all = array();//存储该用户所有的功能代号
    
    foreach($ajs as $vjs)
    {
        $sgn = "select RuleId from JueSeWithRules where JueSeId =\'{$vjs[0]}\'";
        $agn = $db->Query($sgn);
        
        foreach($agn as $vgn)
        {
            array_push($all,$vgn[0]);    
        }
    }
    
    $all = array_unique($all);
    
    //显示菜单
    foreach($all as $vall)
    {
        $sn = "select Name from Rules where Code = \'{$vall}\'";
        $name = $db->StrQuery($sn);
        
        echo "<div class=\'cd\'>{$name}</div>";
    }
    
    ?>
    
</div>


</body>

以上是关于权限管理的主要内容,如果未能解决你的问题,请参考以下文章

JS+JavaBean判断管理员增删改的操作权限

Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段

ASP.NET MVC4.0+EF+LINQ+bui+网站+角色权限管理系统

gitlab 可以进行版本和权限控制,bug管理吗?供部门内部使用,而且是Linux和Windows平台都能使用

使用 Git 来管理 Xcode 中的代码片段

教程4 - 验证和权限