Пример #1
0
    protected void btnAdd_Click(object sender, ImageClickEventArgs e)
    {
        lblMsg.Text = string.Empty;
        //轉成小寫
        string id = txtId.Text.Trim().ToLower();
        string nameInChinese = txtFullNameInChinese.Text.Trim();
        string nameInEnglish = txtFullNameInEnglish.Text.Trim();
        int IsAlive = int.Parse(rdbIsValidAccount.SelectedValue);
        int ShowInSalesStatistics = int.Parse(rdbShowInSalesStatistics.SelectedValue);

        string mobie = txtMobile.Text.Trim();
        string ssid = txtSSID.Text.Trim();
        string email = txtEmail.Text.Trim();
        string address = txtAddress.Text.Trim();

        LoginUserVO user = m_AuthService.GetLoginUserById(id);

        if (user != null)
        {
            lblMsg.Text = MsgVO.USER_ALREADY_EXIST;
            return;
        }
        else
        {
            LoginUserVO newUser = new LoginUserVO();
            newUser.UserId = id;
            newUser.FullNameInChinese = nameInChinese;
            newUser.FullNameInEnglish = nameInEnglish;
            newUser.IsAlive = IsAlive;
            newUser.ShowInSalesStatistics = ShowInSalesStatistics;
            newUser.Mobile = mobie;
            newUser.SSID = ssid;
            newUser.Email = email;
            newUser.ContactAddress = address;
            newUser.Password = "******";
            newUser.CreateDate = DateTime.Now;
            m_AuthService.CreateLoginUser(newUser);
            m_WebLogService.AddSystemLog(MsgVO.Action.新增, newUser);
            lblMsg.Text = MsgVO.INSERT_OK;
            clearInput();
            LoadDataToUI();
        }
    }
Пример #2
0
        /// <summary>
        /// 更新後台使用者
        /// </summary>
        /// <param name="loginUserVO">被更新的後台使用者</param>
        /// <returns>更新後的後台使用者</returns>
        public LoginUserVO UpdateLoginUser(LoginUserVO loginUserVO)
        {
            NHibernateDao.Update(loginUserVO);

            return loginUserVO;
        }
Пример #3
0
 /// <summary>
 /// 刪除後台使用者
 /// </summary>
 /// <param name="loginUserVO">被刪除的後台使用者</param>
 public void DeleteLoginUser(LoginUserVO loginUserVO)
 {
     NHibernateDao.Delete(loginUserVO);
 }
Пример #4
0
        /// <summary>
        /// 新增後台使用者
        /// </summary>
        /// <param name="loginUserVO">被新增的後台使用者</param>
        /// <returns>新增後的後台使用者</returns>
        public LoginUserVO CreateLoginUser(LoginUserVO loginUserVO)
        {
            NHibernateDao.Insert(loginUserVO);

            return loginUserVO;
        }
Пример #5
0
    private bool PathHasRight(LoginUserVO loginUser, Uri uri, Dictionary<string, List<int>> pathFunc)
    {
        string url = uri.ToString();

        foreach (string path in pathFunc.Keys)
        {
            if (url.IndexOf(path) != -1)
            {
                m_Log.Fatal(path.IndexOf(url));

                IList<int> funIdList = pathFunc[path];

                //判斷是否有此功能權限

                if (loginUser.LoginRoleList != null && loginUser.LoginRoleList.Count > 0)
                {
                    foreach (LoginRoleVO role in loginUser.LoginRoleList)
                    {
                        if (role.MenuFuncList != null && role.MenuFuncList.Count > 0)
                        {
                            foreach (MenuFuncVO roleMenuFunc in role.MenuFuncList)
                            {
                                foreach (int id in funIdList)
                                {
                                    if (id == roleMenuFunc.MenuFuncId)
                                    {
                                        return true;
                                    }
                                }
                            }
                        }
                    }

                    //若未有權限 則丟回false
                    return false;
                }
                else
                {
                    return false;
                }
            }
        }

        return true;
    }
Пример #6
0
 /// <summary>
 /// 刪除後台使用者
 /// </summary>
 /// <param name="loginUserVO">被刪除的後台使用者</param>
 public void DeleteLoginUser(LoginUserVO loginUserVO)
 {
     LoginUserDao.DeleteLoginUser(loginUserVO);
 }
Пример #7
0
 /// <summary>
 /// 新增後台使用者
 /// </summary>
 /// <param name="loginUserVO">被新增的後台使用者</param>
 /// <returns>新增後的後台使用者</returns>
 public LoginUserVO CreateLoginUser(LoginUserVO loginUserVO)
 {
     return LoginUserDao.CreateLoginUser(loginUserVO);
 }
Пример #8
0
        /// <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;
        }
Пример #9
0
 /// <summary>
 /// 更新後台使用者
 /// </summary>
 /// <param name="loginUserVO">被更新的後台使用者</param>
 /// <returns>更新後的後台使用者</returns>
 public LoginUserVO UpdateLoginUser(LoginUserVO loginUserVO)
 {
     return LoginUserDao.UpdateLoginUser(loginUserVO);
 }
Пример #10
0
        /// <summary>
        /// 判斷路徑是否有權限 
        /// </summary>
        /// <param name="loginUserVO">後台使用者</param>
        /// <param name="uri">路徑</param>
        /// <returns>路徑是否有權限 </returns>
        public bool PathHasAuth(LoginUserVO user, Uri uri)
        {
            string path = uri.ToString();

            LoginUserVO loginUserVO = LoginUserDao.GetLoginUserById(user.UserId);
            IList<LoginRoleVO> loginRoleList = loginUserVO.LoginRoleList;

            HashSet<string> pathRightSet = new HashSet<string>();

            foreach (LoginRoleVO role in loginRoleList)
            {
                IList<MenuFuncVO> menuFuncList = role.MenuFuncList;

                foreach (MenuFuncVO menuFunc in menuFuncList)
                {
                    pathRightSet.Add(menuFunc.MainPath);

                    if (menuFunc.FuncionPaths != null && menuFunc.FuncionPaths.Count > 0)
                    {
                        foreach (FunctionPathVO fpth in menuFunc.FuncionPaths)
                        {
                            if (!string.IsNullOrEmpty(fpth.Path))
                            {
                                pathRightSet.Add(fpth.Path);
                            }
                        }
                    }
                }
            }

            pathRightSet.Add("admin/index.aspx");
            if (pathRightSet.Count > 0)
            {
                foreach (string rightPath in pathRightSet.ToArray<string>())
                {
                    if (path.IndexOf(rightPath) != -1)
                    {
                        return true;
                    }
                }
            }

            return false;
        }
Пример #11
0
        /// <summary>
        /// 判斷是否是admin
        /// </summary>
        /// <param name="loginUser"></param>
        /// <returns></returns>
        public bool IsAdmin(LoginUserVO user)
        {
            LoginUserVO loginUserVO = GetLoginUserById(user.UserId);
            IList<LoginRoleVO> loginRoleList = loginUserVO.LoginRoleList;
            foreach (LoginRoleVO role in loginRoleList)
            {
                if ("系統管理員".Equals(role.RoleName))
                {
                    return true;
                }
            }

            return false;
        }
Пример #12
0
        /// <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 void InitLoginRoleAndUser()
        {
            //建立後台角色
            LoginRoleVO loginRoleVO = new LoginRoleVO("系統管理員");
            loginRoleVO.MenuFuncList = m_AuthService.GetNotTopMenuFunc(); //角色功能權限
            m_AuthService.CreateLoginRole(loginRoleVO);

            LoginRoleVO loginRoleVO2 = new LoginRoleVO("行銷人員");
            loginRoleVO2.MenuFuncList = m_AuthService.GetNotTopMenuFunc().Where(m => !8.Equals(m.ParentMenu.MenuFuncId)).ToList(); //角色功能權限
            m_AuthService.CreateLoginRole(loginRoleVO2);

            LoginUserVO loginUserVO = new LoginUserVO();
            loginUserVO.UserId = "admin";
            loginUserVO.Password = "******";
            loginUserVO.FullNameInChinese = "系統管理者";
            loginUserVO.FullNameInEnglish = "Administrator";
            loginUserVO.LoginRoleList = new List<LoginRoleVO>();
            loginUserVO.LoginRoleList.Add(loginRoleVO);
            loginUserVO.CreateDate = DateTime.Now;
            m_AuthService.CreateLoginUser(loginUserVO);

            LoginUserVO loginUserVO2 = new LoginUserVO();
            loginUserVO2.UserId = "test";
            loginUserVO2.Password = "******";
            loginUserVO2.FullNameInChinese = "行銷人員";
            loginUserVO2.FullNameInEnglish = "Administrator";
            loginUserVO2.LoginRoleList = new List<LoginRoleVO>();
            loginUserVO2.LoginRoleList.Add(loginRoleVO2);
            loginUserVO2.CreateDate = DateTime.Now;
            m_AuthService.CreateLoginUser(loginUserVO2);
        }