/// <summary> /// 取得屬於這個User的權限的功能清單 /// </summary> /// <returns>屬於這個User的權限的功能清單</returns> public IList <MenuFuncVO> GetTopMenuFunc(LoginUserVO user, IList <MenuFuncVO> allMenu, Dictionary <int, LoginRoleVO> roleDic) { IList <MenuFuncVO> authMenuList = new List <MenuFuncVO>(); foreach (MenuFuncVO menu in allMenu) { if (menu.SubFuncs.Count > 0) { int i = 1; //判斷是否第一次執行 MenuFuncVO parentMenu = new MenuFuncVO(); foreach (MenuFuncVO subFunc in menu.SubFuncs) { if (UserHasMenuRight(user, subFunc, roleDic)) { if (i == 1) { parentMenu = menu; authMenuList.Add(parentMenu); parentMenu.SubFuncs = new List <MenuFuncVO>(); } parentMenu.SubFuncs.Add(subFunc); i++; } } } } return(authMenuList); }
private MenuFuncVO CreateParentMenu(string menuName, int sort) { MenuFuncVO menuFuncVO = new MenuFuncVO(menuName, null); menuFuncVO.ListOrder = sort; return(m_AuthService.CreateMenuFunc(menuFuncVO)); }
private MenuFuncVO CreateSubMenu(string menuName, MenuFuncVO parentMenu, int sort, string path) { MenuFuncVO menuFuncVO = new MenuFuncVO(menuName, parentMenu); menuFuncVO.ListOrder = sort; menuFuncVO.MainPath = path; return(m_AuthService.CreateMenuFunc(menuFuncVO)); }
/// <summary> /// 加入功能的其他Path /// </summary> /// <param name="menuFuncVO">要加入Path的功能</param> /// <param name="path">要加入Path</param> public void AddOtherPath(MenuFuncVO menuFuncVO, string path) { FunctionPathVO functionPathVO = new FunctionPathVO(); functionPathVO.Path = path; functionPathVO.MenuFunc = menuFuncVO; MenuFuncDao.CreateFunctionPath(functionPathVO); }
private void InitMenu() { MenuFuncVO parentMenu41 = CreateParentMenu("網站管理", 1000); CreateSubMenu("手機價格列表", parentMenu41, 1001, "admin/UC04/0432.aspx"); CreateSubMenu("配件價格列表", parentMenu41, 1002, "admin/UC04/0433.aspx"); CreateSubMenu("門號折扣列表", parentMenu41, 1003, "admin/UC04/0442.aspx"); CreateSubMenu("門市據點列表", parentMenu41, 1004, "admin/UC05/0521.aspx"); CreateSubMenu("品牌管理", parentMenu41, 1005, "admin/UC04/0431.aspx"); CreateSubMenu("電信公司管理", parentMenu41, 1006, "admin/UC04/0441.aspx"); MenuFuncVO parentMenu7 = CreateParentMenu("網站設定與廣告管理", 8000); CreateSubMenu("首頁廣告", parentMenu7, 8001, "admin/UC07/0701.aspx"); CreateSubMenu("網站右方廣告", parentMenu7, 8002, "admin/UC07/0702.aspx"); //CreateSubMenu("首頁Facebook設定", parentMenu7, 8003, "admin/UC07/0711.aspx"); //MenuFuncVO parentMenu42 = CreateParentMenu("服務項目管理", 2000); //CreateSubMenu("服務項目分類", parentMenu42, 2001, "admin/UC04/0421.aspx"); //CreateSubMenu("服務項目列表", parentMenu42, 2002, "admin/UC04/0422.aspx"); //MenuFuncVO parentMenu41 = CreateParentMenu("美麗見證管理", 3000); //CreateSubMenu("美麗見證分類", parentMenu41, 3001, "admin/UC04/0411.aspx"); //CreateSubMenu("美麗見證列表", parentMenu41, 3002, "admin/UC04/0412.aspx"); //MenuFuncVO parentMenu53 = CreateParentMenu("關於臻美管理", 4000); //CreateSubMenu("關於臻美列表", parentMenu53, 4001, "admin/UC05/0531.aspx"); //MenuFuncVO parentMenu52 = CreateParentMenu("醫療團隊管理", 6000); //CreateSubMenu("醫師陣容列表", parentMenu52, 6001, "admin/UC05/0521.aspx"); //CreateSubMenu("儀器設備列表", parentMenu52, 6002, "admin/UC05/0522.aspx"); //MenuFuncVO parentMenu3 = CreateParentMenu("活動資訊管理", 5000); ////CreateSubMenu("相簿分類", parentMenu3, 3001, "admin/UC03/0302.aspx"); //MenuFuncVO subMenuFuncVO3_1 = CreateSubMenu("活動列表", parentMenu3, 5002, "admin/UC03/0301.aspx"); //m_AuthService.AddOtherPath(subMenuFuncVO3_1, "admin/UC03/0301_1.aspx");//相簿圖片管理 //MenuFuncVO parentMenu6 = CreateParentMenu("聯絡臻美/收件者信箱管理", 7000); //CreateSubMenu("線上諮詢紀錄", parentMenu6, 7001, "admin/UC06/0601.aspx"); //CreateSubMenu("收件者信箱設定", parentMenu6, 7002, "admin/UC06/0602.aspx"); //CreateSubMenu("人才招募列表", parentMenu6, 7003, "admin/UC01/0111.aspx"); MenuFuncVO parentMenu30 = CreateParentMenu("個人設定", 99998); CreateSubMenu("登入密碼變更", parentMenu30, 1, "admin/UC30/3001Personal.aspx"); MenuFuncVO parentMenu14 = CreateParentMenu("權限管理", 99999); CreateSubMenu("帳號管理", parentMenu14, 1, "admin/UC14/UserAdd.aspx"); CreateSubMenu("群組管理", parentMenu14, 2, "admin/UC14/RoleAdd.aspx"); CreateSubMenu("帳號群組設定", parentMenu14, 3, "admin/UC14/UserRoleSet.aspx"); CreateSubMenu("群組權限設定", parentMenu14, 4, "admin/UC14/RoleFuncSet.aspx"); CreateSubMenu("使用紀錄", parentMenu14, 5, "admin/UC14/QueryLog.aspx"); }
/// <summary> /// 判斷後台角色是否有此功能的權限 /// </summary> /// <param name="loginRoleVO">後台角色</param> /// <param name="subMenuFuncVO">後台功能</param> /// <returns>群組是否有此功能清單的權限</returns> bool IAuthService.RoleHasMenuRight(LoginRoleVO loginRoleVO, MenuFuncVO subMenuFuncVO) { foreach (MenuFuncVO roleHasFunc in loginRoleVO.MenuFuncList) { if (roleHasFunc.MenuFuncId.Equals(subMenuFuncVO.MenuFuncId)) { return(true); } } return(false); }
/// <summary> /// 群組是否有此功能清單的權限 /// </summary> /// <param name="role"></param> /// <param name="subFunc"></param> /// <returns></returns> private bool RoleHasMenuRight(LoginRoleVO role, MenuFuncVO subFunc) { foreach (MenuFuncVO roleHasFunc in role.MenuFuncList) { if (roleHasFunc.MenuFuncId.Equals(subFunc.MenuFuncId)) { return(true); } } return(false); }
private void FillLog(MenuFuncVO m) { AuthFactory authFactory = new AuthFactory(); IAuthService authService = authFactory.GetAuthService(); MenuFuncVO parentMenu = authService.GetMenuFuncById(m.ParentMenu.MenuFuncId); string functionName = parentMenu.MenuFuncName; string subfunctionName = m.MenuFuncName; m_Log.Debug("functionName:" + functionName + " >> " + m.MenuFuncName); SessionHelper sessionHelper = new SessionHelper(); LogSystemVO logSystemVO = new LogSystemVO(); logSystemVO.Fucntion = functionName; logSystemVO.SubFucntion = subfunctionName; sessionHelper.LogVO = logSystemVO; }
/// <summary> /// 檢查使用者是否有此單一清單的權限 /// </summary> /// <param name="user"></param> /// <param name="subFunc"></param> /// <returns></returns> private bool UserHasMenuRight(LoginUserVO user, MenuFuncVO subFunc, Dictionary <int, LoginRoleVO> roleDic) { if (user.LoginRoleList != null && user.LoginRoleList.Count > 0) { foreach (LoginRoleVO role in user.LoginRoleList) { LoginRoleVO cacheRole = roleDic[role.RoleId]; if (RoleHasMenuRight(cacheRole, subFunc)) { return(true); } } } return(false); }
protected void btnUpdate_Click(object sender, ImageClickEventArgs e) { string selectedRole = ddlRole.SelectedValue; LoginRoleVO role = m_AuthService.GetLoginRoleByIdNoLazy(int.Parse(selectedRole)); foreach (GridViewRow row in gvAuth.Rows) { CheckBox ckAuth = (CheckBox)row.FindControl("ckIsAuth"); HiddenField hdnId = (HiddenField)row.FindControl("hdnId"); if (ckAuth.Checked == true) { if (role.MenuFuncList == null) { role.MenuFuncList = new List <MenuFuncVO>(); } MenuFuncVO theFunc = m_AuthService.GetMenuFuncById(int.Parse(hdnId.Value)); if (!m_AuthService.RoleHasMenuRight(role, theFunc)) { role.MenuFuncList.Add(theFunc); } } else { MenuFuncVO theFunc = m_AuthService.GetMenuFuncById(int.Parse(hdnId.Value)); if (m_AuthService.RoleHasMenuRight(role, theFunc)) { //role.MenuFuncList.Remove(theFunc); role.MenuFuncList.Remove(role.MenuFuncList.Where(p => p.MenuFuncId == int.Parse(hdnId.Value)).ToList()[0]); } } } m_AuthService.UpdateLoginRole(role); m_WebLogService.AddSystemLog(MsgVO.Action.修改, role); UserMenuFuncContainer.GetInstance().ResetAll(); lblMsg.Text = MsgVO.UPDATE_OK; }
/// <summary> /// 新增後台功能 /// </summary> /// <param name="menuFuncVO">被新增的後台功能</param> /// <returns>新增後的後台功能</returns> public MenuFuncVO CreateMenuFunc(MenuFuncVO menuFuncVO) { return(MenuFuncDao.CreateMenuFunc(menuFuncVO)); }
/// <summary> /// 新增後台功能 /// </summary> /// <param name="menuFuncVO">被新增的後台功能</param> /// <returns>新增後的後台功能</returns> public MenuFuncVO CreateMenuFunc(MenuFuncVO menuFuncVO) { NHibernateDao.Insert(menuFuncVO); return(menuFuncVO); }