权限维护功能的实现
开发工具与关键技术:Visual Studio 2015 权限维护
作者:李国旭
撰写时间:2019年5月27日
对于权限维护这个模块的功能的实现,里面的每一个角色的权限都不一样除开管理员,而管理员就可以修改他们的权限不该让他们看到的就不会给他们看,当然我们也可以新增权限啊、修改权限和删除等。
在下图是页面的部分代码我们可以清晰的看到他们的身份类型有学生、教师、管理员,还有操作的按钮。这里的权限维护只是对一些菜单上面的权限控制,当然细致的还可以对一些新增删除,修改的控制。
(注:图来自老师)
根据用户类型不同来点击“修改”按钮修改角色的基本信息和权限,在作废后的角色可以删除。还有就是此处管理的是角色的权限,我们就可以在这个界面里面让某种角色作废或启用。当然啦!我们可以单击“新增角色”按钮新增一种角色和其相对应的权限。
然后呢它会弹出一个新增角色的模态框,这里面有用户角色的各个权限:查询、新增、修改、删除四个权限,我们就可以给他们每一用户角色设定他们相关的权限;也可以给针对某个用户是学生还是教师或者是管理员来进行权限的维护,设定错了还可以修改或重置表格等等。
然后关闭模态框的时候会出现上一次iframe的残影,那么为了避免出现上一次留下的残影呢就要先获取他们iframe新增和iframe修改的窗口的ID还有文本的值让它为空,再关闭模态框,刷新表格重新加载一下表格的数据;这样给客户的体验上来说就好一点既能修改又能新增删除权限。
新增和修改的模态框经典代码
下面的就是控制器那边的代码:
public ActionResult InsertUserType(SYS_UserType fmUserType, string
modularDetailIds)
{
ReturnJsonVo returnJson = new ReturnJsonVo();
//使用事务--开启事务
using (var scope = new TransactionScope())//using把这个变量用完了之后动回收
{
try
{//===新增UserType
fmUserType.ToVoidNo = true;//默认启用该角色
fmUserType.FoundTime = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");//添加时间
myModel.SYS_UserType.Add(fmUserType);
myModel.SaveChanges();
//====获得新增的新增UserTypeid
int userTypeId = fmUserType.UserTypeID;//fmUserType新增完了之后把主键拿出来
//===新增权限
//分割modularDetailIds "1,2,3"
string[] strings = modularDetailIds.Split(',');
//遍历 新增权限
List<PW_Jurisdiction> listJurisdiction = new List<PW_Jurisdiction>();
foreach (string s in strings)
{
if (!string.IsNullOrEmpty(s))
{
PW_Jurisdiction jurisdiction = new PW_Jurisdiction
{ UserTypeID = userTypeId,ModularDetailID Convert.ToInt32(s) };
listJurisdiction.Add(jurisdiction);}
}//添加多条数据
myModel.PW_Jurisdiction.AddRange(listJurisdiction);
myModel.SaveChanges();
//====提交事务!!!!
scope.Complete();//真正的保存到数据库
returnJson.State = true;
returnJson.Text = "保存成功";
}catch (Exception ex)
{ Console.Write(ex);
returnJson.State = false;
returnJson.Text = "保存失败";
}
}
return Json(returnJson, JsonRequestBehavior.AllowGet); }