예제 #1
0
        /// <summary>
        /// </summary>
        /// <param name="Username"></param>
        /// <returns></returns>
        public void RevokePermission(string GroupName, UserPermissionType Permission, string Path)
        {
            UserGroup group = FindGroup(GroupName);

            if (group == null)
            {
                return;
            }

            RevokePermission(group, Permission, Path);
        }
예제 #2
0
        /// <summary>
        /// </summary>
        /// <param name="Username"></param>
        /// <returns></returns>
        public bool HasAnyPermission(string Username, UserPermissionType Permission)
        {
            User user = FindUser(Username);

            if (user == null)
            {
                return(false);
            }

            return(HasAnyPermission(user, Permission));
        }
예제 #3
0
        /// <summary>
        /// </summary>
        /// <param name="Username"></param>
        /// <returns></returns>
        public bool CheckPermission(string Username, UserPermissionType Permission, string Path, bool IgnoreInheritedPermissions = false, bool AllowIfHavePermissionToSubPath = false)
        {
            User user = FindUser(Username);

            if (user == null)
            {
                return(false);
            }

            return(CheckPermission(user, Permission, Path, IgnoreInheritedPermissions, AllowIfHavePermissionToSubPath));
        }
예제 #4
0
        /// <summary>
        /// </summary>
        /// <param name="Username"></param>
        /// <returns></returns>
        public bool HasAnyPermission(User User, UserPermissionType Permission)
        {
            foreach (string GroupName in User.Groups)
            {
                UserGroup group = FindGroup(GroupName);
                if (group.Permissions.HasAnyPermissionOfType(Permission))
                {
                    return(true);
                }
            }

            return(false);
        }
예제 #5
0
        /// <summary>
        /// </summary>
        /// <param name="Username"></param>
        /// <returns></returns>
        public bool CheckPermission(User User, UserPermissionType Permission, string Path, bool IgnoreInheritedPermissions = false, bool AllowIfHavePermissionToSubPath = false)
        {
            foreach (string GroupName in User.Groups)
            {
                UserGroup group = FindGroup(GroupName);
                if (group.Permissions.HasPermission(Permission, Path, IgnoreInheritedPermissions, AllowIfHavePermissionToSubPath))
                {
                    return(true);
                }
            }

            return(false);
        }
예제 #6
0
        /// <summary>
        /// </summary>
        /// <param name="Username"></param>
        /// <returns></returns>
        public void RevokePermission(UserGroup Group, UserPermissionType Permission, string Path)
        {
            Group.Permissions.RevokePermission(Permission, Path);

            Logger.Log(LogLevel.Info, LogCategory.Users, "Revoked group '{0}' permission '{1}'", Group.Name, Permission.ToString());

            UsersUpdated?.Invoke();
            UserGroupsUpdated?.Invoke();

            foreach (User user in Users)
            {
                if (user.Groups.Contains(Group.Name))
                {
                    PermissionsUpdated?.Invoke(user);
                }
            }
        }