Ejemplo n.º 1
0
        /// <summary>
        /// 权限检查
        /// </summary>
        /// <param name="authorityLevel"></param>
        /// <param name="MsgDTO"></param>
        /// <returns></returns>
        private static bool AuthorityCheck(AuthorityLevel authorityLevel, MsgInformationEx MsgDTO)
        {
            if (MsgDTO.Auth == AuthorityLevel.未知)
            {
                MsgDTO.Auth = Utility.GetAuth(MsgDTO);
            }

            var auth = MsgDTO.Auth;

            if (auth == AuthorityLevel.开发者)
            {
                return(true);
            }
            if (authorityLevel == AuthorityLevel.开发者)
            {
                return(false);
            }
            if (auth == AuthorityLevel.群主)
            {
                return(true);
            }
            if (authorityLevel == AuthorityLevel.群主)
            {
                return(false);
            }
            if (auth == AuthorityLevel.管理员)
            {
                return(true);
            }

            return(authorityLevel != AuthorityLevel.管理员);
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 建立新用户
        /// </summary>
        /// <param name="userName">用户名称</param>
        /// <param name="pass">密码</param>
        /// <returns>若成功测返回true,否则返回false</returns>
        public bool EstablishNewAccount(string userName, SecureString pass, AuthorityLevel level)
        {
            userName = userName.Trim();
            if (userName == "")
            {
                throw new ArgumentException("用户名不能为空");
            }

            if (loginAccount.PowerLevel < 3)
            {
                throw new Exception("当前用户没有建立新用户的权限");
            }


            var account = getUserAccount(userName);

            if (account != null)
            {
                throw new ArgumentException("新建的用户名已经存在");
            }

            if (loginAccount.PowerLevel < (int)level)
            {
                throw new Exception("新建用户的权限超过当前用户的权限,需要不能大于当前用户权限");
            }

            var str = getSecureString(pass);

            var newUser = new UserAccount(userName, str, (int)level, "no");

            accountList.Add(newUser);
            return(true);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 更新显示数据
        /// </summary>
        /// <param name="strName">用户名</param>
        /// <param name="level">权限等级</param>
        public void UpdateShow(string strName, AuthorityLevel level)
        {
            currentUserName.Text  = strName;
            currentAuthorityLevel = level;

            int levelNum = (int)level;

            if (levelNum < 4)
            {
                radioLevelIV.IsEnabled = false;
            }

            if (levelNum < 3)
            {
                radioLevelIII.IsEnabled = false;
            }

            if (levelNum < 2)
            {
                radioLevelII.IsEnabled = false;
            }

            if (levelNum < 1)
            {
                radioLevelI.IsEnabled = false;
            }
            switch (level)
            {
            case AuthorityLevel.I:
            {
                radioLevelI.IsChecked = true;
                break;
            }

            case AuthorityLevel.II:
            {
                radioLevelII.IsChecked = true;
                break;
            }

            case AuthorityLevel.III:
            {
                radioLevelIII.IsChecked = true;
                break;
            }

            case AuthorityLevel.IV:
            {
                radioLevelIV.IsChecked = true;
                break;
            }
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 设置控件权限
        /// </summary>
        /// <param name="name">控件名称</param>
        /// <param name="level">使用权限</param>
        ///<returns>成功返回true否则返回false</returns>
        public bool DataBaseSetControlAuthority(string name, AuthorityLevel level)
        {
            if (controlAuthority[name] != null)
            {
                controlAuthority[name].MinLevel      = (int)level;
                controlAuthority[name].DataBaseExist = true;

                return(true);
            }
            else
            {
                return(false);
            }
        }
Ejemplo n.º 5
0
        public AuthorityLevel CreateAuthorityLevel(string name, int level)
        {
            if (this.op.Retrieve <AuthorityLevel>("level", level) != null)
            {
                throw new ObjectAlreadyExistException <AuthorityLevel>("UE02-010", "AuthorityLevel already exist!");
            }
            AuthorityLevel level2 = new AuthorityLevel
            {
                Name  = name,
                Level = level
            };

            this.op.Insert(level2);
            return(level2);
        }
Ejemplo n.º 6
0
 /// <summary>
 /// 获取控件允许
 /// </summary>
 /// <param name="level">允许水平</param>
 public void GetPermission(AuthorityLevel level)
 {
     foreach (var m in controlAuthority)
     {
         if ((int)level >= m.Value.MinLevel)
         {
             //如果已经定义为false,就不需要再置为true
             if (!m.Value.Element.IsEnabled)
             {
                 m.Value.Element.IsEnabled = true;
             }
         }
         else
         {
             m.Value.Element.IsEnabled = false;
         }
     }
 }
Ejemplo n.º 7
0
        /// <summary>
        /// 权限选择
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void radioLevel_Checked(object sender, RoutedEventArgs e)
        {
            try
            {
                switch ((sender as RadioButton).Name)
                {
                case "radioLevelI":
                {
                    level = AuthorityLevel.I;
                    break;
                }

                case "radioLevelII":
                {
                    level = AuthorityLevel.II;
                    break;
                }

                case "radioLevelIII":
                {
                    level = AuthorityLevel.III;
                    break;
                }

                case "radioLevelIV":
                {
                    level = AuthorityLevel.IV;
                    break;
                }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "修改权限");
            }
        }
Ejemplo n.º 8
0
 /// <summary>
 /// 控件权限
 /// </summary>
 /// <param name="element">控件</param>
 /// <param name="minLevel">最小使用权限</param>
 public ControlAuthority(FrameworkElement element, AuthorityLevel minLevel)
 {
     mElement      = element;
     mMinLevel     = minLevel;
     DataBaseExist = false;
 }
Ejemplo n.º 9
0
 public bool IsLevel(User user, AuthorityLevel level)
 {
     return(GetLevel(user) == level);
 }
Ejemplo n.º 10
0
 /// <summary>
 /// 设置控件权限
 /// </summary>
 /// <param name="index">索引</param>
 /// <param name="level">使用权限</param>
 public void SetControlAuthority(int index, AuthorityLevel level)
 {
     controlAuthority.ElementAt(index).Value.MinLevel = (int)level;
 }
Ejemplo n.º 11
0
 /// <summary>
 /// 设置控件权限
 /// </summary>
 /// <param name="element">控件</param>
 /// <param name="level">使用权限</param>
 public void SetControlAuthority(FrameworkElement element, AuthorityLevel level)
 {
     controlAuthority[element.Name].MinLevel = (int)level;
 }
Ejemplo n.º 12
0
 /// <summary>
 /// 添加控件
 /// </summary>
 /// <param name="element">元素名称</param>
 /// <param name="level">最小权限</param>
 public void AddControl(FrameworkElement element, AuthorityLevel level)
 {
     controlAuthority.Add(element.Name, new ControlAuthority(element, level));
 }