权限控制(二)→→→根据用户的权限加载功能按钮
程序员文章站
2022-07-14 15:32:43
...
前文讲过根据用户的权限加载分配的菜单https://blog.csdn.net/fwq_17802927858/article/details/84644778
这里需要几张表的共同操作:用户/角色/角色模块/模块操作/权限/权限操作
最中的数据在权限操作里面,因为存在外键关系,需要这几张表。默认的每个模块都有Create/Edit/Delete/Detail/Export这几个操作。
查询到所需要的信息之后,就看可以做下面的操作:
自定义一个HtmlHelper:
/// <summary>
/// 普通按钮
/// </summary>
/// <param name="helper">htmlhelper</param>
/// <param name="id">控件Id</param>
/// <param name="icon">控件icon图标class</param>
/// <param name="text">控件的名称</param>
/// <param name="codes">操作码集合</param>
/// <param name="code"></param>
/// <returns>html</returns>
public static MvcHtmlString ToolButton(this HtmlHelper helper, string id, string icon, string text, List<SysRoleAuthorizeOperate> codes, string code)
{
StringBuilder sb = new StringBuilder();
if (!string.IsNullOrEmpty(code))
{
if (codes == null || codes.FindIndex(m => m.KeyCode == code) < 0)
return new MvcHtmlString(sb.ToString());
}
sb.AppendFormat(" <div class='btn-group'>");
sb.AppendFormat("<a id='{0}'authorize='true' class='btn btn-primary dropdown-text'><i class='{1}'></i>{2}</a>", id, icon, text);
sb.AppendFormat("</div>");
return new MvcHtmlString(sb.ToString());
}
前台就可以遍历集合加载所有的操作按钮:
@try
{
foreach (SysRoleAuthorizeOperate oper in operates)
{
@Html.ToolButton("btn" + oper.KeyCode, oper.Icon, oper.Name, operates, oper.KeyCode);
}
}
catch (Exception)
{
return;
}
菜鸟一只,望指正,谢谢!!!
上一篇: oracle:DCL(数据控制)
下一篇: hive建表分隔符问题