예제 #1
0
        public HttpResponseMessage DeleteRole(int roleId = 0)
        {
            if (roleId == 0)
            {
                return(Request.CreateResponse(HttpStatusCode.BadRequest, new { errorMessage = "Invalid roleId" }));
            }

            RoleInfo deleteRole = new RoleInfo();

            try
            {
                // Gets the role
                deleteRole = RoleInfoProvider.GetRoleInfo(roleId);
            }
            catch (Exception e)
            {
                return(Request.CreateResponse(HttpStatusCode.ServiceUnavailable, new { errorMessage = e.Message }));
            }

            if (deleteRole != null)
            {
                try
                {
                    // Deletes the role
                    RoleInfoProvider.DeleteRoleInfo(deleteRole);
                    return(Request.CreateResponse(HttpStatusCode.OK, new { }));
                }
                catch (Exception e)
                {
                    return(Request.CreateResponse(HttpStatusCode.BadRequest, new { errorMessage = e.Message }));
                }
            }
            return(Request.CreateResponse(HttpStatusCode.BadRequest, new { errorMessage = "There's a problem with your role." }));
        }
예제 #2
0
    /// <summary>
    /// Deletes role. Called when the "Delete role" button is pressed.
    /// Expects the CreateRole method to be run first.
    /// </summary>
    private bool DeleteRole()
    {
        // Get the role
        RoleInfo deleteRole = RoleInfoProvider.GetRoleInfo("MyNewRole", CMSContext.CurrentSiteID);

        // Delete the role
        RoleInfoProvider.DeleteRoleInfo(deleteRole);

        return(deleteRole != null);
    }
예제 #3
0
        /// <summary>
        /// Deletes <see cref="Role"/> from the database.
        /// </summary>
        /// <param name="role">Role.</param>
        public Task DeleteAsync(Role role)
        {
            if (role == null)
            {
                throw new ArgumentNullException(nameof(role));
            }

            RoleInfoProvider.DeleteRoleInfo(role.Id);

            return(Task.FromResult(0));
        }
예제 #4
0
        /// <summary>
        /// Deletes role specified by site and group identifier.
        /// </summary>
        /// <param name="siteInfo">Site info object</param>
        /// <param name="groupGuid">AD group identifier</param>
        private static void DeleteRole(SiteInfo siteInfo, Guid groupGuid)
        {
            // Try to get role by GUID and site id
            RoleInfo role = RoleInfoProvider.GetRoleInfoByGUID(groupGuid, siteInfo.SiteID);

            // If role is domain role
            if ((role != null) && role.RoleIsDomain)
            {
                MessageLog.LogEvent(ResHelper.GetString("Log_DeletingRole", role.RoleDisplayName));

                // Delete role
                RoleInfoProvider.DeleteRoleInfo(role);
            }
        }
예제 #5
0
    /// <summary>
    /// Handles the UniGrid's OnAction event.
    /// </summary>
    /// <param name="actionName">Name of item (button) that throws event</param>
    /// <param name="actionArgument">ID (value of Primary key) of corresponding data row</param>
    protected void gridElem_OnAction(string actionName, object actionArgument)
    {
        if (actionName == "edit")
        {
            SelectedItemID = Convert.ToInt32(actionArgument);
            RaiseOnEdit();
        }
        else if (actionName == "delete")
        {
            if (!CheckPermissions("CMS.Roles", PERMISSION_MODIFY))
            {
                return;
            }

            RoleInfoProvider.DeleteRoleInfo(ValidationHelper.GetInteger(actionArgument, 0));
        }
        RaiseOnAction(actionName, actionArgument);
    }
예제 #6
0
        /// <summary>
        /// Deletes domain objects that exist in CMS and doesn't exist in AD.
        /// </summary>
        /// <param name="usersChanged">Records removed users for CMS event log.</param>
        /// <param name="rolesChanged">Records removed roles for CMS event log.</param>
        private static void DeleteNonExistingObjects(CumulatedChanges usersChanged, CumulatedChanges rolesChanged)
        {
            // Remove CMS (domain) roles that do not exist in AD anymore
            IQueryable <RoleInfo> excessiveRoles = RoleInfoProvider
                                                   .GetRoles()
                                                   .WhereTrue("RoleIsDomain")
                                                   .WhereNotEquals("RoleGUID", Guid.Empty)
                                                   .WhereGreaterThan("RoleID", 0)
                                                   .Columns("RoleID", "RoleGUID", "RoleName")
                                                   .Where(x => !PrincipalProvider.Exists(x.RoleGUID));

            foreach (var role in excessiveRoles)
            {
                // Delete role
                RoleInfoProvider.DeleteRoleInfo(role.RoleID);

                // Store deleted role GUID and name for EventLog
                rolesChanged.Add(role.RoleGUID, role.RoleDisplayName, ChangeActionEnum.Deleted);

                // Add message to log
                MessageLog.LogEvent(ResHelper.GetString("Log_DeletingRole", role.RoleDisplayName));
            }

            // Remove CMS (domain) users that do not exist in AD anymore
            IQueryable <UserInfo> excessiveUsers = UserInfoProvider
                                                   .GetUsers()
                                                   .WhereTrue("UserIsDomain")
                                                   .WhereNotEquals("UserGUID", Guid.Empty)
                                                   .WhereGreaterThan("UserID", 0)
                                                   .Columns("UserID", "UserGUID", "UserName")
                                                   .Where(x => !PrincipalProvider.Exists(x.UserGUID));

            foreach (var user in excessiveUsers)
            {
                // Delete user
                UserInfoProvider.DeleteUser(user.UserID);

                // Store deleted user GUID and name for EventLog
                usersChanged.Add(user.UserGUID, user.UserName, ChangeActionEnum.Deleted);

                // Add message to log
                MessageLog.LogEvent(ResHelper.GetString("Log_DeletingUser", user.UserName));
            }
        }