{ /// <summary> /// 判断用户访问某个页面的权限 /// </summary> /// <param name="memberID">会员ID</param> /// <returns></returns> public static bool ValidateMemberPagePermission(tb_Mem_Member member, tb_Pages page) { if (member == null || page == null) { return(false); } //先判断用户是否有权访问该页面 tb_Permissions permission = DataContext.tb_Permissions.Where(t => t.MemberID == member.MemberID && t.PageID == page.PageID).SingleOrDefault(); if (permission != null) { return(true); } //若用户没有权限,判断他所属的角色是否有权访问该页面 else { foreach (tb_MemberInRoles role in member.tb_MemberInRoles) { permission = DataContext.tb_Permissions.Where(t => t.RoleID == role.RoleID && t.PageID == page.PageID).SingleOrDefault(); if (permission != null) { return(true); } } } return(false); }
/// <summary> /// 授予一个或多个用户访问该页面的权限 /// </summary> /// <param name="pageID"></param> /// <returns></returns> public static void AddMemberPages(long pageID, List <long> memberIDList) { try { tb_Pages page = GetPageByID(pageID); foreach (long id in memberIDList) { tb_Permissions p = new tb_Permissions(); p.MemberID = id; page.tb_Permissions.Add(p); } DataContext.SaveChanges(); } catch (Exception ex) { LogHelper.g_Logger.ErrorFormat("授予用户权限失败!错误信息:{0}", ex.Message); throw ex; } }
/// <summary> /// 删除一个或多个用户访问该页面的权限 /// </summary> /// <param name="pageID"></param> /// <param name="roleIDList"></param> public static void RemovePageMembers(long pageID, List <long> memberIDList) { try { tb_Pages page = GetPageByID(pageID); foreach (long id in memberIDList) { tb_Permissions p = page.tb_Permissions.Where(t => t.MemberID == id).First(); page.tb_Permissions.Remove(p); DataContext.tb_Permissions.DeleteObject(p); } DataContext.SaveChanges(); } catch (Exception ex) { LogHelper.g_Logger.ErrorFormat("删除用户权限失败!错误信息:{0}", ex.Message); throw ex; } }
/// <summary> /// 授予某个角色访问一个或多个页面的权限 /// </summary> /// <param name="roleID"></param> /// <param name="pageIDList"></param> public static void AddRolePages(long roleID, List <long> pageIDList) { try { tb_Roles role = BizRole.GetRoleByID(roleID); foreach (long id in pageIDList) { tb_Permissions p = new tb_Permissions(); p.PageID = id; role.tb_Permissions.Add(p); } DataContext.SaveChanges(); } catch (Exception ex) { LogHelper.g_Logger.ErrorFormat("授予角色权限失败!错误信息:{0}", ex.Message); throw ex; } }
/// <summary> /// 解除某个角色访问一个或多个页面的权限 /// </summary> /// <param name="roleID"></param> /// <param name="pageIDList"></param> public static void RemoveRolePages(long roleID, List <long> pageIDList) { try { tb_Roles role = BizRole.GetRoleByID(roleID); foreach (long id in pageIDList) { tb_Permissions p = role.tb_Permissions.Where(t => t.PageID == id).First(); role.tb_Permissions.Remove(p); DataContext.tb_Permissions.DeleteObject(p); } DataContext.SaveChanges(); } catch (Exception ex) { LogHelper.g_Logger.ErrorFormat("删除角色权限失败!错误信息:{0}", ex.Message); throw ex; } }
/// <summary> /// 授予会员访问一个或多个页面的权限 /// </summary> /// <param name="memberID"></param> /// <param name="pageIDList"></param> public static void AddMemberPages(long memberID, List <long> pageIDList) { try { tb_Mem_Member member = BizMember.GetMemberByID(memberID); foreach (long id in pageIDList) { tb_Permissions p = new tb_Permissions(); p.PageID = id; member.tb_Permissions.Add(p); } DataContext.SaveChanges(); } catch (Exception ex) { LogHelper.g_Logger.ErrorFormat("授予会员权限失败!错误信息:{0}", ex.Message); throw ex; } }
/// <summary> /// 解除会员访问某些页面的权限 /// </summary> /// <param name="memberID"></param> /// <param name="pageIDList"></param> public static void RemoveMemberPages(long memberID, List <long> pageIDList) { try { tb_Mem_Member member = BizMember.GetMemberByID(memberID); foreach (long id in pageIDList) { tb_Permissions p = member.tb_Permissions.Where(t => t.PageID == id).First(); member.tb_Permissions.Remove(p); DataContext.tb_Permissions.DeleteObject(p); } DataContext.SaveChanges(); } catch (Exception ex) { LogHelper.g_Logger.ErrorFormat("解除会员权限失败!错误信息:{0}", ex.Message); throw ex; } }