/// <summary> /// Конструктор /// </summary> /// <param name="sName">Уникальное наименование пользователя приложения</param> /// <param name="roles">Массив ролей пользователя</param> /// <param name="privilege_set"> Множество привилегий пользователя</param> public XUser(string sName, XRole[] roles, XPrivilegeSet privilege_set) { m_sName = sName; m_bIsAuthenticated = true; // инициализируем массив ролей SetRoles(roles); // инициализируем массив привилегий SetPrivileges(privilege_set); }
public static XPrivilegeSet Create(XPrivilege[] privils) { XPrivilegeSet set = new XPrivilegeSet(); foreach (XPrivilege priv in privils) { set.Add(priv); } return(set); }
public XPrivilegeSet Clone() { XPrivilegeSet new_set = new XPrivilegeSet(); foreach (XPrivilege priv in m_privileges.Values) { new_set.Add(priv); } return(new_set); }
/// <summary> /// Устанавливает множество привилегий пользователя /// </summary> /// <param name="privilege_set"></param> public void SetPrivileges(XPrivilegeSet privilege_set) { if (privilege_set == null) { m_privileges = XPrivilegeSet.Empty; } else { m_privileges = privilege_set; } }
public bool ContainsAll(XPrivilegeSet right_set) { foreach (XPrivilege priv in right_set) { if (!Contains(priv.Name)) { return(false); } } return(true); }
public XPrivilegeSet Subtract(XPrivilegeSet right_set) { XPrivilegeSet new_set = new XPrivilegeSet(); foreach (XPrivilege priv in right_set) { if (!Contains(priv.Name)) { new_set.Add(priv); } } return(new_set); }
public XPrivilegeSet Union(XPrivilegeSet right_set) { XPrivilegeSet new_set = Clone(); foreach (XPrivilege priv in right_set) { if (!new_set.Contains(priv.Name)) { new_set.Add(priv); } } return(new_set); }
public bool ContainsAny(XPrivilegeSet right_set) { if (right_set.Count == 0) { return(true); } foreach (XPrivilege priv in right_set) { if (Contains(priv.Name)) { return(true); } } return(false); }