예제 #1
0
        public async Task <IActionResult> UpdateRolePermissionAsync([FromBody] UpdateRolePermissionViewModel model_)
        {
            string roleId = (await _roleManager.FindByNameAsync(model_.RoleName)).Id;

            Enum.TryParse(model_.PermissionValue, true, out Permission permissionEnumValue);

            if (model_.Extension == Constants.SoftinuxBaseSecurity && permissionEnumValue != Permission.Admin)
            {
                if (await ReadGrants.IsRoleLastAdminPermissionLevelGrantForExtensionAsync(_roleManager, Storage, model_.RoleName, model_.Extension))
                {
                    return(StatusCode((int)HttpStatusCode.BadRequest, "Permission not updated, the role is the last Admin grant to SoftinuxBase.Security extension"));
                }
            }

            IRolePermissionRepository repo = Storage.GetRepository <IRolePermissionRepository>();

            repo.Delete(roleId, model_.Extension);

            var permissionEntity = Storage.GetRepository <IPermissionRepository>().Find(permissionEnumValue);

            repo.Create(new RolePermission {
                RoleId = roleId, PermissionId = permissionEntity.Id, Extension = model_.Extension
            });

            await Storage.SaveAsync();

            return(StatusCode((int)HttpStatusCode.OK));
        }
예제 #2
0
				V_2 = Expression.Parameter(Type.GetTypeFromHandle(// 
				// Current member / type: System.Collections.Generic.List`1<Mix.Cms.Lib.ViewModels.MixPortalPageRoles.ReadViewModel> Mix.Cms.Lib.ViewModels.Account.MixRoles.UpdateViewModel::GetPermission()
				// Exception in: System.Collections.Generic.List<Mix.Cms.Lib.ViewModels.MixPortalPageRoles.ReadViewModel> GetPermission()
				// Specified method is not supported.
				// 
				// mailto: [email protected]


		private async Task<RepositoryResponse<bool>> HandlePermission(UpdateRolePermissionViewModel item, MixCmsContext context, IDbContextTransaction transaction)
		{
			V_0.u003cu003e4__this = this;
			V_0.item = item;
			V_0.context = context;
			V_0.transaction = transaction;
			V_0.u003cu003et__builder = AsyncTaskMethodBuilder<RepositoryResponse<bool>>.Create();
			V_0.u003cu003e1__state = -1;
			V_0.u003cu003et__builder.Start<Mix.Cms.Lib.ViewModels.Account.MixRoles.UpdateViewModel.u003cHandlePermissionu003ed__27>(ref V_0);
			return V_0.u003cu003et__builder.get_Task();
		}
예제 #3
0
        public async Task <IActionResult> UpdateRolePermission(UpdateRolePermissionViewModel m)
        {
            await _roleService.UpdateRolePermission(m.RoleId, m.PermissionNames ?? new string[0]);

            return(Ok());
        }