权限管理


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>无标题文档</title> <script src="../jquery-1.11.2.min.js"></script> </head> <body> <?php include("../DBDA.class.php"); $db=new DBDA(); $sname="select * from user"; $yonghu=$db->Query($sname); $squan="select * from juese"; $quanxian=$db->Query($squan); ?> <h1>权限管理</h1> <div>请选择用户: <select id="user"> <?php foreach($yonghu as $v) { echo "<option value='{$v[0]}'>{$v[2]}</option>"; } ?> </select> </div> <br /> <div>请选择权限: <?php foreach($quanxian as $v) { echo "<input type='checkbox' class='juese' value='{$v[0]}' />{$v[1]}  "; } ?> </div><br /> <div><input type="button" value="保存" id="btn" /></div> </body> <script type="text/javascript"> $(document).ready(function(e) { JSchecked(); $("#btn").click(function(){ //取人员的选中值 var uid=$("#user").val(); //取复选框的所有选中值 var ck=$(".juese"); var js=""; for(var i=0;i<ck.length;i++) { //ck.eq(i).prop("checked"); //判断是否选中 if(ck[i].checked) { js=js+ck.eq(i).val()+"|"; } } js=js.substr(0,js.length-1); $.ajax({ url:"qxdeal.php", data:{uid:uid,js:js}, type:"POST", dataType:"TEXT", success: function(data){ if(data.trim()=="ok") { alert("添加成功"); } else { alert("添加失败"); } } }); }) $("#user").change(function(){ JSchecked(); }) }); function JSchecked() { //取选中的用户名 var uid=$("#user").val(); $.ajax({ url:"chajsdeal.php", data:{uid:uid}, type:"POST", dataType:"TEXT", success: function(data){ //清空原有选中信息 $(".juese").prop("checked",false); //找到该人员对应的角色代号 var attr=data.split("|"); //找到所有的checkbox var ck=$(".juese"); for(var i=0;i<ck.length;i++) { var dh=ck.eq(i).val(); //$.inArray(dh,attr)判断元素是否在数组中,如果在,返回所在位置的索引,如果不在,返回-1。确定第一个参数在数组中的位置(如果没有找到则返回 -1 ) if($.inArray(dh,attr)>=0) { ck.eq(i).prop("checked",true); } } } }); } </script> </html>

  

<?php
include("../DBDA.class.php");
$db=new DBDA();
$uid=$_POST["uid"];
$juese=$_POST["js"];
//将传入的角色字符串拆分为数组
$attr=explode("|",$juese);
//删除原数据
$sdel="delete from userinjuese where UserId='{$uid}'";
$db->Query($sdel,0);
//循环添加数据
foreach($attr as $v)
{
	$sql="insert into userinjuese values('','{$uid}','$v')";	
	$db->Query($sql,0);
}
echo "ok";

  

<?php
include("../DBDA.class.php");
$db=new DBDA();
$uid=$_POST["uid"];
$sql="select JueSeId from userinjuese where UserId='{$uid}'";
echo $db->StrQuery($sql);

  

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style type="text/css">
*{ margin:0px auto; padding:0px}
#menu{ 80%; height:35px}
.list{ 120px; height:35px; margin-left:5px; background-color:#39C; color:#CCC; font-family:"微软雅黑"; font-size:25px; text-align:center; line-height:35px; vertical-align:middle; float:left}
</style>
</head>
<?php
session_start();
include("../DBDA.class.php");
$db=new DBDA();
if(empty($_SESSION["uid"]))
{
	header("location:login.php");	
	exit;
}
$uid=$_SESSION["uid"];
//根据用户名查用户对应角色表,找到相应的角色代号
$sjs="select JueSeId from userinjuese where UserId='{$uid}'";
$attr=$db->Query($sjs);
//根据角色代号查找功能
$gn=array();//存放功能的二维数组
$onegn=array();//存放功能的一维数组
foreach($attr as $v)
{
	$sgn="select ruleid from juesewithrules where jueseid='{$v[0]}'";	
	$agn=$db->Query($sgn);
	$gn=array_merge($gn,$agn);
}
//将二维数组转化为一维数组
foreach($gn as $v)
{
	$onegn[]=$v[0];//array_push();	
}
//对功能的一维数组进行去重
$onegn=array_unique($onegn);
?>
<body>
<h1>主页面</h1>
<div id="menu">
<?php
foreach($onegn as $v)
{
	$sname="select name from rules where code='{$v}'";
	$name=$db->StrQuery($sname);
	echo "<div class='list'>{$name}</div>";
}
?>
</div>
</body>
</html>

  

权限管理:rbac

用户表

用户对应角色表

角色表

角色对应功能表

功能表

用户:张三,李四
角色:前台,财务,市场
功能:咨询登记,面试,报表分析,财务统计

原文地址:https://www.cnblogs.com/hamilton/p/5641714.html