예제 #1
0
        public async Task <RESTResult> SetPermissionToRoleAsync(Guid currentUserId, RolePermissionTransferObject rolePermissionInfo)
        {
            RESTResult result = new RESTResult {
                Code = RESTStatus.NotData
            };

            if (rolePermissionInfo.RoleId == null)
            {
                result.Message = "The role id could not be null";
                return(result);
            }
            if (rolePermissionInfo.PermissionIds.Contains(null))
            {
                result.Message = "The permision ids could not be null";
                return(result);
            }
            //TOOD:Get the current role permission
            var rolePermissions = await _rolePermissionRepository.GetAllListAsync(item => item.RoleId.Equals(rolePermissionInfo.RoleId));

            //TODO: remove the exist role permission
            foreach (var item in rolePermissions)
            {
                await _rolePermissionRepository.DeleteAsync(item);
            }
            RolePermission rolePermissionEntity;

            foreach (var permissionId in rolePermissionInfo.PermissionIds)
            {
                //TODO: Add new permission;
                rolePermissionEntity = new RolePermission
                {
                    RoleId         = rolePermissionInfo.RoleId.Value,
                    PermissionId   = permissionId.Value,
                    CreateByUserId = currentUserId,
                    CreateTime     = DateTime.Now
                };
                await _rolePermissionRepository.InsertAsync(rolePermissionEntity);
            }
            result.Code    = RESTStatus.Success;
            result.Message = "Set permission to role successful";
            return(result);
        }
예제 #2
0
 public async Task <IActionResult> SetRolePermission([FromBody] RolePermissionTransferObject rolePermissionInfo)
 {
     return(Ok(await _userAppService.SetPermissionToRoleAsync(CurrentUser.Id.Value, rolePermissionInfo)));
 }