// neil 20180508 新增權限判斷 end public static bool CheckIsLogin() { Areas.Backend.Models.MemberModels curUser = WorkV3.Areas.Backend.Models.DataAccess.MemberDAO.SysCurrent; if (curUser == null) { return(false); } return(true); }
public static bool HavePermission(int menuType, long menuId, long siteId) { Areas.Backend.Models.MemberModels member = Areas.Backend.Models.DataAccess.MemberDAO.SysCurrent; if (member == null) { return(false); } return(HavePermission(member.GroupId, siteId, menuType, menuId)); }
public static bool HavePermission(string menu, long?siteId) { Areas.Backend.Models.MemberModels curUser = WorkV3.Areas.Backend.Models.DataAccess.MemberDAO.SysCurrent; if (curUser == null) { return(false); } return(WorkV3.Golbal.PermissionCheck.havePermission(curUser.Id, menu, siteId)); }
// shan 20180829 新增後台管理能權限判斷(不分站台的) /// <summary> /// 後台,判斷使用者所在群組是否有觀看左側選單指定項目的權限 /// 主要是為了防止在產生選單時一直抓取 SQL 資料,所以第一個參數給入要判斷的群組相關的權限設定 /// </summary> /// <param name="permissions">使用者所在群組的選單權限列表</param> /// <param name="siteId"></param> /// <param name="menuType">選單類型:1: 後台選單,2: 前台選單</param> /// <param name="menuId">選單ID</param> /// <param name="groupId">Group ID,若不指定則為目前登入使用所屬的 Group</param> /// <returns>回傳是否有觀看權限</returns> public static bool HavePermission(IEnumerable <WorkV3.Areas.Backend.Models.GroupPermissionModels> permissions, Areas.Backend.Abstracts.Menu item, long groupId = -1) { long menuId = item.ID; int menuType; string typeName = item.GetType().Name; switch (typeName) { case "MenusModels": default: menuType = 2; break; case "BackendMenuModel": menuType = 1; break; } Areas.Backend.Models.MemberModels curUser = WorkV3.Areas.Backend.Models.DataAccess.MemberDAO.SysCurrent; if (curUser == null && groupId == -1) { return(false); } bool returnValue = false; groupId = groupId == -1 ? curUser.GroupId : groupId; Areas.Backend.Models.GroupModels group = Areas.Backend.Models.GroupDAO.GetItem(groupId); if (group.GroupType == 0) { group.GroupType = 1; } if (group.GroupType == 1) // 權限全開,使用黑名單設定不能進入的選單 { returnValue = true; if (permissions == null) { return(true); } IEnumerable <WorkV3.Areas.Backend.Models.GroupPermissionModels> filtered = permissions.Where(m => m.MenuType == menuType && m.MenuID == menuId); return(!filtered.Any()); } else if (group.GroupType == 2) // 權限全關,使用白名單設定能夠進入的選單 { foreach (Areas.Backend.Models.GroupPermissionModels permission in permissions) { // 只要發現 true 直接回傳 if (permission.MenuType == menuType && permission.MenuID == menuId) { return(true); } } // 子選單如果有權限的話,該選單也回傳 true IEnumerable <WorkV3.Areas.Backend.Abstracts.Menu> childrenMenu = WorkV3.Areas.Backend.Models.DataAccess.BackendMenuDAO.GetChildren(menuId); foreach (WorkV3.Areas.Backend.Abstracts.Menu menu in childrenMenu) { // recursive returnValue = HavePermission(permissions, menu, groupId); if (returnValue) { return(returnValue); } } } return(returnValue); }