Beispiel #1
0
        public async Task <ActionResult> ShowRoles()
        {
            var user = await UserManager.FindByIdAsync(User.Identity.GetUserId <int>());

            var model = new RoleManagementModel();

            if (user != null)
            {
                model.AssignedRoles  = user.Roles.Select(x => x.RoleName);
                model.AvailableRoles = await RoleManager.GetAll();
            }

            return(PartialView("ShowRoles", model));
        }
        public ActionResult ManageUserRoles(int userId)
        {
            using (CGWebEntities entities = new CGWebEntities())
            {
                UserProfile selectedProfile = entities.UserProfiles.Where(up => up.UserId.Equals(userId)).Single();

                RoleManagementModel returnValue = new RoleManagementModel();
                returnValue.UserId = selectedProfile.UserId;
                foreach (webpages_Roles role in selectedProfile.webpages_Roles)
                {
                    switch (role.RoleName)
                    {
                    case "Root":
                        returnValue.Root = true;
                        break;

                    case "Administrator":
                        returnValue.Administrator = true;
                        break;

                    case "Moderator":
                        returnValue.Moderator = true;
                        break;

                    case "User":
                        returnValue.User = true;
                        break;

                    case "Announcer":
                        returnValue.Announcer = true;
                        break;
                    }
                }

                return(View(returnValue));
            }
        }
        public ActionResult ManageUserRoles(RoleManagementModel model)
        {
            using (CGWebEntities entities = new CGWebEntities())
            {
                UserProfile selectedProfile = entities.UserProfiles.Where(up => up.UserId.Equals(model.UserId)).Single();

                if (model.Root)
                {
                    if (!selectedProfile.webpages_Roles.Any(r => r.RoleName.Equals("Root")))
                    {
                        selectedProfile.webpages_Roles.Add(entities.webpages_Roles.Where(r => r.RoleName.Equals("Root")).Single());
                    }
                }
                else
                {
                    webpages_Roles roleTest = selectedProfile.webpages_Roles.Where(r => r.RoleName.Equals("Root")).SingleOrDefault();
                    if (roleTest != null)
                    {
                        selectedProfile.webpages_Roles.Remove(roleTest);
                    }
                }

                if (model.Administrator)
                {
                    if (!selectedProfile.webpages_Roles.Any(r => r.RoleName.Equals("Administrator")))
                    {
                        selectedProfile.webpages_Roles.Add(entities.webpages_Roles.Where(r => r.RoleName.Equals("Administrator")).Single());
                    }
                }
                else
                {
                    webpages_Roles roleTest = selectedProfile.webpages_Roles.Where(r => r.RoleName.Equals("Administrator")).SingleOrDefault();
                    if (roleTest != null)
                    {
                        selectedProfile.webpages_Roles.Remove(roleTest);
                    }
                }

                if (model.Moderator)
                {
                    if (!selectedProfile.webpages_Roles.Any(r => r.RoleName.Equals("Moderator")))
                    {
                        selectedProfile.webpages_Roles.Add(entities.webpages_Roles.Where(r => r.RoleName.Equals("Moderator")).Single());
                    }
                }
                else
                {
                    webpages_Roles roleTest = selectedProfile.webpages_Roles.Where(r => r.RoleName.Equals("Moderator")).SingleOrDefault();
                    if (roleTest != null)
                    {
                        selectedProfile.webpages_Roles.Remove(roleTest);
                    }
                }

                if (model.User)
                {
                    if (!selectedProfile.webpages_Roles.Any(r => r.RoleName.Equals("User")))
                    {
                        selectedProfile.webpages_Roles.Add(entities.webpages_Roles.Where(r => r.RoleName.Equals("User")).Single());
                    }
                }
                else
                {
                    webpages_Roles roleTest = selectedProfile.webpages_Roles.Where(r => r.RoleName.Equals("User")).SingleOrDefault();
                    if (roleTest != null)
                    {
                        selectedProfile.webpages_Roles.Remove(roleTest);
                    }
                }

                if (model.Announcer)
                {
                    if (!selectedProfile.webpages_Roles.Any(r => r.RoleName.Equals("Announcer")))
                    {
                        selectedProfile.webpages_Roles.Add(entities.webpages_Roles.Where(r => r.RoleName.Equals("Announcer")).Single());
                    }
                }
                else
                {
                    webpages_Roles roleTest = selectedProfile.webpages_Roles.Where(r => r.RoleName.Equals("Announcer")).SingleOrDefault();
                    if (roleTest != null)
                    {
                        selectedProfile.webpages_Roles.Remove(roleTest);
                    }
                }

                try
                {
                    entities.SaveChanges();
                    ViewBag.SaveMessage = "Save Completed";
                }
                catch (Exception ex)
                {
                    ViewBag.SaveMessage = String.Format("There was a problem saving : {0}", ex.Message);
                }

                return(View("ManageUserRoles", model));
            }
        }