コード例 #1
0
        public ActionResult ApproveDeny(string userName)
        {
            JsonResponse response = new JsonResponse();

            MembershipUser user = membershipService.GetUser(userName);

            try
            {
                user.IsApproved = !user.IsApproved;
                membershipService.UpdateUser(user);

                string approvedMsg = (user.IsApproved) ? "Approved" : "Denied";

                response.Success = true;
                response.Message = "User " + approvedMsg + " successfully!";
                response.Approved = user.IsApproved;
                response.ApprovedStatus = (user.IsApproved) ? "Approved" : "Not approved";
            }
            catch (Exception)
            {
                response.Success = false;
                response.Message = "User unlocked failed.";
            }

            return Json(response);
        }
コード例 #2
0
        public ActionResult CheckForUniqueUser(string userName)
        {
            MembershipUser user = membershipService.GetUser(userName);
            JsonResponse response = new JsonResponse();
            response.Exists = (user == null) ? false : true;

            return Json(response, JsonRequestBehavior.AllowGet);
        }
コード例 #3
0
        public virtual ActionResult CreateModule(string moduleName, string parentModule)
        {
            JsonResponse response = new JsonResponse();

            if (string.IsNullOrEmpty(moduleName))
            {
                response.Success = false;
                response.Message = "You must enter a module name.";
                response.CssClass = "red";

                return Json(response);
            }

            try
            {
                Module a = new Module();
                a.Id = Guid.NewGuid();
                a.ModuleName = moduleName;
                if(!string.IsNullOrWhiteSpace(parentModule))
                    a.ParentModule = parentModule;
                moduleRepo.Create(a);

                if (Request.IsAjaxRequest())
                {
                    response.Success = true;
                    response.Message = "Module created successfully!";
                    response.CssClass = "green";

                    return Json(response);
                }

                return RedirectToAction("Index");
            }
            catch (Exception ex)
            {
                if (Request.IsAjaxRequest())
                {
                    response.Success = false;
                    response.Message = ex.InnerException.Message;
                    response.CssClass = "red";

                    return Json(response);
                }

                ModelState.AddModelError("", ex.InnerException.Message);
            }

            return RedirectToAction("Index");
        }
コード例 #4
0
        public virtual ActionResult CreateAction(string actionName)
        {
            JsonResponse response = new JsonResponse();

            if (string.IsNullOrEmpty(actionName))
            {
                response.Success = false;
                response.Message = "You must enter a action name.";
                response.CssClass = "red";

                return Json(response);
            }

            try
            {
                Business.Entities.Action a = new Business.Entities.Action();
                a.Id = Guid.NewGuid();
                a.ActionName = actionName;
                actionRepo.Create(a);

                if (Request.IsAjaxRequest())
                {
                    response.Success = true;
                    response.Message = "Role created successfully!";
                    response.CssClass = "green";

                    return Json(response);
                }

                return RedirectToAction("Index");
            }
            catch (Exception ex)
            {
                if (Request.IsAjaxRequest())
                {
                    response.Success = false;
                    response.Message = ex.InnerException.Message;
                    response.CssClass = "red";

                    return Json(response);
                }

                ModelState.AddModelError("", ex.InnerException.Message);
            }

            return RedirectToAction("Index");
        }
コード例 #5
0
ファイル: RoleController.cs プロジェクト: kahanu/webgoat.mvc
        public virtual ActionResult CreateRole(string roleName)
        {
            JsonResponse response = new JsonResponse();

            if (string.IsNullOrEmpty(roleName))
            {
                response.Success = false;
                response.Message = "You must enter a role name.";
                response.CssClass = "red";

                return Json(response);
            }

            try
            {
                roleService.CreateRole(roleName);

                if (Request.IsAjaxRequest())
                {
                    response.Success = true;
                    response.Message = "Role created successfully!";
                    response.CssClass = "green";

                    return Json(response);
                }

                return RedirectToAction("Index");
            }
            catch (Exception ex)
            {
                if (Request.IsAjaxRequest())
                {
                    response.Success = false;
                    response.Message = ex.Message;
                    response.CssClass = "red";

                    return Json(response);
                }

                ModelState.AddModelError("", ex.Message);
            }

            return RedirectToAction("Index");
        }
コード例 #6
0
        public virtual ActionResult CreateUser(viewModels.RegisterViewModel model)
        {
            MembershipUser user;
            MembershipCreateStatus status;
            user = membershipService.CreateUser(model.UserName, model.Password, model.Email, model.SecretQuestion, model.SecretAnswer, model.Approve, out status);
            JsonResponse response = new JsonResponse();

            if (user == null)
            {
                response.Success = false;
                response.Message = status.ToString();
                if (status == MembershipCreateStatus.InvalidPassword)
                {
                    ModelState.AddModelError("", "Password must be at least 6 characters.");
                }
                else if (status == MembershipCreateStatus.InvalidEmail)
                {
                    ModelState.AddModelError("", "The provided email is wrong.");
                }
                return RedirectToAction("CreateUser");
            }

            return routeHelpers.Actions.GrantRolesToUser(user.UserName);
        }
コード例 #7
0
        public ActionResult Unlock(string userName)
        {
            JsonResponse response = new JsonResponse();

            MembershipUser user = membershipService.GetUser(userName);

            try
            {
                user.UnlockUser();
                response.Success = true;
                response.Message = "User unlocked successfully!";
                response.Locked = false;
                response.LockedStatus = (response.Locked) ? "Locked" : "Unlocked";
            }
            catch (Exception)
            {
                response.Success = false;
                response.Message = "User unlocked failed.";
            }

            return Json(response);
        }
コード例 #8
0
        public ActionResult RevokeRolesForUser(string userName, string roles)
        {
            JsonResponse response = new JsonResponse();

            if (string.IsNullOrEmpty(userName))
            {
                response.Success = false;
                response.Message = "The userName is missing.";
                return Json(response);
            }

            if (string.IsNullOrEmpty(roles))
            {
                response.Success = false;
                response.Message = "Roles is missing";
                return Json(response);
            }

            string[] roleNames = roles.Substring(0, roles.Length - 1).Split(',');

            if (roleNames.Length == 0)
            {
                response.Success = false;
                response.Message = "No roles are selected to be revoked.";
                return Json(response);
            }

            try
            {
                roleService.RemoveUserFromRoles(userName, roleNames);

                response.Success = true;
                response.Message = "The Role(s) has been REVOKED successfully for " + userName;
            }
            catch (Exception)
            {
                response.Success = false;
                response.Message = "There was a problem revoking roles for the user.";
            }

            return Json(response);
        }
コード例 #9
0
        public virtual ActionResult GrantRolesToUser(string userName, string roles)
        {
            JsonResponse response = new JsonResponse();

            if (string.IsNullOrEmpty(userName))
            {
                response.Success = false;
                response.Message = "The userName is missing.";
                return Json(response);
            }

            string[] roleNames = roles.Substring(0, roles.Length - 1).Split(',');

            if (roleNames.Length == 0)
            {
                response.Success = false;
                response.Message = "No roles have been granted to the user.";
                return Json(response);
            }

            try
            {
                roleService.AddUserToRoles(userName, roleNames);

                response.Success = true;
                response.Message = "The Role(s) has been GRANTED successfully to " + userName;
            }
            catch (Exception)
            {
                response.Success = false;
                response.Message = "There was a problem adding the user to the roles.";
            }

            return Json(response);
        }
コード例 #10
0
ファイル: RoleController.cs プロジェクト: kahanu/webgoat.mvc
        public virtual ActionResult DeleteRole(string roleName)
        {
            JsonResponse response = new JsonResponse();

            if (string.IsNullOrEmpty(roleName))
            {
                response.Success = false;
                response.Message = "You must select a Role Name to delete.";
                response.CssClass = "red";

                return Json(response);
            }

            roleService.DeleteRole(roleName);

            response.Success = true;
            response.Message = roleName + " was deleted successfully!";
            response.CssClass = "green";

            return Json(response);
        }
コード例 #11
0
ファイル: RoleController.cs プロジェクト: kahanu/webgoat.mvc
        public ActionResult DeleteRoles(string roles, bool throwOnPopulatedRole)
        {
            JsonResponse response = new JsonResponse();
            response.Messages = new List<ResponseItem>();

            if (string.IsNullOrEmpty(roles))
            {
                response.Success = false;
                response.Message = "You must select at least one role.";
                return Json(response);
            }

            string[] roleNames = roles.Split(',');
            StringBuilder sb = new StringBuilder();

            ResponseItem item = null;

            foreach (var role in roleNames)
            {
                if (!string.IsNullOrEmpty(role))
                {
                    try
                    {
                        roleService.DeleteRole(role, throwOnPopulatedRole);

                        item = new ResponseItem();
                        item.Success = true;
                        item.Message = "Deleted this role successfully - " + role;
                        item.CssClass = "green";
                        response.Messages.Add(item);

                        //sb.AppendLine("Deleted this role successfully - " + role + "<br />");
                    }
                    catch (System.Configuration.Provider.ProviderException ex)
                    {
                        //sb.AppendLine(role + " - " + ex.Message + "<br />");

                        item = new ResponseItem();
                        item.Success = false;
                        item.Message = ex.Message;
                        item.CssClass = "yellow";
                        response.Messages.Add(item);
                    }
                }
            }

            response.Success = true;
            response.Message = sb.ToString();

            return Json(response);
        }
コード例 #12
0
        public virtual ActionResult RevokeActionsForModule(string moduleId, string actions)
        {
            JsonResponse response = new JsonResponse();
            response.Messages = new List<ResponseItem>();

            string[] actionIds = actions.Split(',');
            StringBuilder sb = new StringBuilder();

            ResponseItem item = null;

            foreach (string s in actionIds)
            {
                if (!string.IsNullOrWhiteSpace(s))
                {
                    try
                    {
                        //remove action in repo
                        moduleRepo.removeAction(new Guid(moduleId), new Guid(s));

                        //remove action in ModulesInRole
                        modulesInRoleRepo.RemoveAction(new Guid(moduleId), new Guid(s));

                        //remove all empty actions in ModulesInRole
                        modulesInRoleRepo.DeleteByModule(new Guid(moduleId));

                        item = new ResponseItem();
                        item.Success = true;
                        response.Message = actionRepo.FindByPk(new Guid(s)).ActionName + " was removed successfully!";
                        response.CssClass = "green";
                        response.Messages.Add(item);
                    }
                    catch (Exception ex)
                    {
                        item = new ResponseItem();
                        item.Success = false;
                        response.Success = false;
                        response.Message = ex.Message;
                        response.CssClass = "red";
                        response.Messages.Add(item);
                    }
                }
            }

            return Json(response);
        }
コード例 #13
0
        public ActionResult DeleteActions(string actions, bool throwOnPopulatedAction)
        {
            JsonResponse response = new JsonResponse();
            response.Messages = new List<ResponseItem>();

            if (string.IsNullOrEmpty(actions))
            {
                response.Success = false;
                response.Message = "You must select at least one action.";
                return Json(response);
            }

            string[] actionNames = actions.Split(',');
            StringBuilder sb = new StringBuilder();

            ResponseItem item = null;

            foreach (var action in actionNames)
            {
                if (!string.IsNullOrEmpty(action))
                {
                    try
                    {
                        actionRepo.Delete(action, throwOnPopulatedAction);//module not yet deleted

                        item = new ResponseItem();
                        item.Success = true;
                        item.Message = "Deleted this action successfully - " + action;
                        item.CssClass = "green";
                        response.Messages.Add(item);

                        //sb.AppendLine("Deleted this role successfully - " + role + "<br />");
                    }
                    catch (Exception ex)
                    {
                        //sb.AppendLine(role + " - " + ex.Message + "<br />");

                        item = new ResponseItem();
                        item.Success = false;
                        item.Message = "Action was used in modules";
                        item.CssClass = "yellow";
                        response.Messages.Add(item);
                    }
                }
            }

            response.Success = true;
            response.Message = sb.ToString();

            return Json(response);
        }
コード例 #14
0
        public virtual ActionResult GrantActionsToModule(string moduleId, string actions)
        {
            JsonResponse response = new JsonResponse();
            response.Messages = new List<ResponseItem>();

            string[] actionIds = actions.Split(',');
            StringBuilder sb = new StringBuilder();

            ResponseItem item = null;

            foreach (string s in actionIds)
            {
                if (!string.IsNullOrWhiteSpace(s))
                {
                    try
                    {
                        moduleRepo.addAction(new Guid(moduleId), new Guid(s));

                        item = new ResponseItem();
                        item.Success = true;
                        response.Message = actionRepo.FindByPk(new Guid(s)).ActionName + " was added successfully!";
                        response.CssClass = "green";
                        response.Messages.Add(item);
                    }
                    catch (Exception ex)
                    {
                        item = new ResponseItem();
                        item.Success = false;
                        response.Success = false;
                        response.Message = ex.Message;
                        response.CssClass = "red";
                        response.Messages.Add(item);
                    }
                }
            }

            return Json(response);
        }
コード例 #15
0
        public ActionResult DeleteModules(string moduleName, bool throwOnPopulatedModule)
        {
            JsonResponse response = new JsonResponse();
            response.Messages = new List<ResponseItem>();

            if (string.IsNullOrEmpty(moduleName))
            {
                response.Success = false;
                response.Message = "You must select at least one module.";
                return Json(response);
            }

            StringBuilder sb = new StringBuilder();

            ResponseItem item = null;

            if (!string.IsNullOrEmpty(moduleName))
            {
                try
                {
                    moduleRepo.Delete(moduleName, throwOnPopulatedModule);//roles not yet deleted

                    item = new ResponseItem();
                    item.Success = true;
                    item.Message = "Deleted this module successfully - " + moduleName;
                    item.CssClass = "green";
                    response.Messages.Add(item);

                    //sb.AppendLine("Deleted this role successfully - " + role + "<br />");
                }
                catch (SqlException ex)
                {
                    //sb.AppendLine(role + " - " + ex.Message + "<br />");

                    item = new ResponseItem();
                    item.Success = false;
                    item.Message = ex.InnerException.Message;
                    item.CssClass = "yellow";
                    response.Messages.Add(item);
                }
            }

            response.Success = true;
            response.Message = sb.ToString();

            return Json(response);
        }
コード例 #16
0
        public virtual ActionResult DeleteModule(string moduleName)
        {
            JsonResponse response = new JsonResponse();

            if (string.IsNullOrEmpty(moduleName))
            {
                response.Success = false;
                response.Message = "You must select a Action Module to delete.";
                response.CssClass = "red";

                return Json(response);
            }
            try
            {
                moduleRepo.Delete(moduleName, false);

                response.Success = true;
                response.Message = moduleName + " was deleted successfully!";
                response.CssClass = "green";

                return Json(response);
            }
            catch (Exception ex)
            {
                response.Success = false;
                response.Message = ex.InnerException.Message;
                response.CssClass = "red";

                return Json(response);
            }
        }
コード例 #17
0
        public virtual ActionResult AddModulesToRole(string[] modules, string roleName)
        {
            JsonResponse response = new JsonResponse();

            try
            {
                roleRepo.AddModuleAndAction(modules, roleName);

                if (Request.IsAjaxRequest())
                {
                    response.Success = true;
                    response.Message = "Module added successfully!";
                    response.CssClass = "green";

                    return Json(response);
                }

                return RedirectToAction("AddModule");
            }
            catch (Exception ex)
            {
                if (Request.IsAjaxRequest())
                {
                    response.Success = false;
                    response.Message = ex.Message + "\r\n" + ex.StackTrace + "\r\n" + ex.InnerException.Message + "\r\n" + ex.InnerException.StackTrace;
                    response.CssClass = "red";

                    return Json(response);
                }

                ModelState.AddModelError("", ex.Message);
            }

            return RedirectToAction("AddModule");
        }
コード例 #18
0
        public virtual ActionResult DeleteAction(string actionName)
        {
            JsonResponse response = new JsonResponse();

            if (string.IsNullOrEmpty(actionName))
            {
                response.Success = false;
                response.Message = "You must select a Action Name to delete.";
                response.CssClass = "red";

                return Json(response);
            }
            try
            {
                actionRepo.Delete(actionName, true);

                response.Success = true;
                response.Message = actionName + " was deleted successfully!";
                response.CssClass = "green";

                return Json(response);
            }
            catch (Exception ex)
            {
                response.Success = false;
                response.Message = "Action was used in modules";
                response.CssClass = "red";

                return Json(response);
            }
        }