/// <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);
        }
Example #2
0
        private MenuFuncVO CreateParentMenu(string menuName, int sort)
        {
            MenuFuncVO menuFuncVO = new MenuFuncVO(menuName, null);

            menuFuncVO.ListOrder = sort;

            return(m_AuthService.CreateMenuFunc(menuFuncVO));
        }
Example #3
0
        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);
        }
Example #5
0
        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);
        }
Example #8
0
    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));
 }
Example #12
0
        /// <summary>
        /// 新增後台功能
        /// </summary>
        /// <param name="menuFuncVO">被新增的後台功能</param>
        /// <returns>新增後的後台功能</returns>
        public MenuFuncVO CreateMenuFunc(MenuFuncVO menuFuncVO)
        {
            NHibernateDao.Insert(menuFuncVO);

            return(menuFuncVO);
        }