示例#1
0
        public IActionResult OnPost()
        {
            if (!ModelState.IsValid)
            {
                throw new Exception("Antiforgery check failed.");
            }

            InitPage();

            try
            {
                ErpRole newRole = new ErpRole();
                newRole.Id          = Guid.NewGuid();
                newRole.Name        = Name;
                newRole.Description = Description;
                new SecurityManager().SaveRole(newRole);

                return(Redirect(ReturnUrl));
            }
            catch (ValidationException ex)
            {
                Validation.Message = ex.Message;
                Validation.Errors  = ex.Errors;
                return(Page());
            }
        }
示例#2
0
        public IActionResult OnPost()
        {
            if (!ModelState.IsValid)
            {
                throw new Exception("Antiforgery check failed.");
            }
            InitPage();
            if (RoleRecord == null)
            {
                return(NotFound());
            }

            try
            {
                ErpRole role = new ErpRole();
                role.Id          = (Guid)RoleRecord["id"];
                role.Name        = Name;
                role.Description = Description;
                new SecurityManager().SaveRole(role);

                return(Redirect(ReturnUrl));
            }
            catch (ValidationException ex)
            {
                Validation.Message = ex.Message;
                Validation.Errors  = ex.Errors;
                return(Page());
            }
        }
		public void SaveRole(ErpRole role)
		{
			if (role == null)
				throw new ArgumentNullException(nameof(role));

			RecordManager recMan = new RecordManager();
			EntityRecord record = new EntityRecord();
			var allRoles = GetAllRoles();
			ErpRole existingRole = allRoles.SingleOrDefault(x => x.Id == role.Id);
			ValidationException valEx = new ValidationException();
			
			if (existingRole != null)
			{
				record["id"] = role.Id;
				record["description"] = role.Description;

				if (existingRole.Name != role.Name)
				{
					record["name"] = role.Name;

					if (string.IsNullOrWhiteSpace(role.Name))
						valEx.AddError("name", "Name is required.");
					else if (allRoles.Any(x => x.Name == role.Name))
						valEx.AddError("name", "Role with same name already exists");
				}

				valEx.CheckAndThrow();

				var response = recMan.UpdateRecord("role", record);
				if (!response.Success)
					throw new Exception(response.Message);

			}
			else
			{
				record["id"] = role.Id;
				record["description"] = role.Description;
				record["name"] = role.Name;

				if (string.IsNullOrWhiteSpace(role.Name))
					valEx.AddError("name", "Name is required.");
				else if (allRoles.Any(x => x.Name == role.Name))
					valEx.AddError("name", "Role with same name already exists");

				valEx.CheckAndThrow();

				var response = recMan.CreateRecord("role", record);
				if (!response.Success)
					throw new Exception(response.Message);

			}
		}
示例#4
0
        public ErpRole GetHigherRole(ApplicationUser user)
        {
            IList <Claim> claims = GetUserClaims(user);

            var roles = claims
                        .Where(c => c.Type == ClaimTypes.Role)
                        .Select(c => c.Value)
                        .ToList();

            ErpRole higherRole = ErpRolesManager.GetHigherRole(roles);

            return(higherRole);
        }
        public static List <ErpRole> AuthorizedRolesToCreate(this ErpRole role)
        {
            var allRoles = ErpRolesManager.GetAllRoles();

            if (role.RoleName == ErpRoleNames.SuperAdmin)
            {
                return(allRoles);
            }

            var authorizedRoles = allRoles
                                  .Where(e => e.Departamento == role.Departamento && e.Nivel >= role.Nivel)
                                  .ToList();

            return(authorizedRoles);
        }
示例#6
0
        public IActionResult OnPost()
        {
            if (!ModelState.IsValid)
            {
                throw new Exception("Antiforgery check failed.");
            }

            var initResult = Init();

            if (initResult != null)
            {
                return(initResult);
            }

            if (string.IsNullOrWhiteSpace(ReturnUrl))
            {
                ReturnUrl = "/sdk/access/role/l/list";
            }

            try
            {
                ErpRole newRole = new ErpRole();
                newRole.Id          = Guid.NewGuid();
                newRole.Name        = Name;
                newRole.Description = Description;
                new SecurityManager().SaveRole(newRole);
                BeforeRender();
                return(Redirect(ReturnUrl));
            }
            catch (ValidationException ex)
            {
                Validation.Message = ex.Message;
                Validation.Errors  = ex.Errors;
                BeforeRender();
                return(Page());
            }
        }