/// <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.管理员); }
/// <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); }
/// <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; } } }
/// <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); } }
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); }
/// <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; } } }
/// <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, "修改权限"); } }
/// <summary> /// 控件权限 /// </summary> /// <param name="element">控件</param> /// <param name="minLevel">最小使用权限</param> public ControlAuthority(FrameworkElement element, AuthorityLevel minLevel) { mElement = element; mMinLevel = minLevel; DataBaseExist = false; }
public bool IsLevel(User user, AuthorityLevel level) { return(GetLevel(user) == level); }
/// <summary> /// 设置控件权限 /// </summary> /// <param name="index">索引</param> /// <param name="level">使用权限</param> public void SetControlAuthority(int index, AuthorityLevel level) { controlAuthority.ElementAt(index).Value.MinLevel = (int)level; }
/// <summary> /// 设置控件权限 /// </summary> /// <param name="element">控件</param> /// <param name="level">使用权限</param> public void SetControlAuthority(FrameworkElement element, AuthorityLevel level) { controlAuthority[element.Name].MinLevel = (int)level; }
/// <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)); }