大家好,又见面了,我是你们的朋友全栈君。
权限管理与分配至少要有三张表
然而 往往难住我们的并不是数据库的设计而是后台的实现
//查询用户所具有的权限
public List<prenisson> Getprenisson(int userid) {
ptestEntities pst = new ptestEntities();
string sql = “select * from prenisson where Id in (select prenissonId from prenisson_Users where UsersId=@userid)”;
List<prenisson> plist = pst.Database.SqlQuery<prenisson>(sql, new SqlParameter(“userid”, userid)).ToList();
return plist;
}
控制器拿到用户id 查询用户所具有的权限
public JsonResult GetUsero( int userid) {
UserDAL ud = new UserDAL();
List<prenisson> plists = ud.Getprenisson(userid);
return Json(plists);
}
从视图里获取数据库的数据库 解析父级与子级
//查询该项目中所有的权限
public List<prenisson> GetPsson()
{
ptestEntities pst = new ptestEntities();
List<prenisson> lpist = pst.prenisson.ToList();
return lpist;
}
//保存分配的权限
public bool SveGet(int userid, List<string> premissid)
{
//先删除原来的权限
ptestEntities pst = new ptestEntities();
pst.Database.ExecuteSqlCommand(“delete prenisson_Users where UsersId=” + userid + “”);
public void Svopon(int userid,string rempremison) {
UserDAL ud = new UserDAL();
//逗号分隔
List<string> listint = rempremison.Split(‘,’).ToList();
listint.RemoveAt(listint.Count()-1);
bool isuccess = ud.SveGet(userid, listint);
}
做一个下拉列表框
//下拉列表框改变事件
$(“#user_sel”).change(function () {
var userid = $(this).val();
//发送一个AJaX请求 得到选择用户的权限
$.ajax({
url: ‘/Preniss/GetUsero’,
type: ‘post’,
data: { userid: userid },
success: function (reuslt) {
console.log(reuslt);
//清空复选框的选中
$(“#poon_check input[type=’checkbox’]”).prop(“checked”,false);
$(“#poon_check input[type=’checkbox’]”).parent().removeClass(“checked”);
//读取用户权限的id
// 找到所有的复选框
$.each(reuslt, function (index, item) {
$(“#poon_check input[type=’checkbox’][value=” + item.Id + “]”).prop(“checked”, true);
$(“#poon_check input[type=’checkbox’][value=” + item.Id + “]”).parent().addClass(“checked”);
});
}
});
});
//给保存添加一个点击事件
$(“#sub_but”).click(function () {
//拿到用户id
var userid = $(“#user_sel”).val();
//拿到权限id
var premiood = “”;
//找到所有选中的复选框0
$(“#poon_check input[type=’checkbox’]:checked”).each(function (index, item) {
premiood+=$(item).val()+”,”;
});
//添加到数据库实现保存
$.post(‘/Preniss/Svopon’, { userid: userid, rempremison: premiood }, function () {
alert(“添加成功”);
});
});
勾选出用户,用户原有的权限已被勾选。只需要在下方权限中勾选中 点击授权 方可被授权。
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/162903.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...