コード例 #1
0
        public async Task SetUserProjectRole([FromBody] ProjectUserWithRole foo)
        {
            _logger.LogInformation($"{foo.Project} {foo.User} {foo.Role}");

            if (!(await _authService.AuthorizeProjectRole(eProjectRoles.Manager, foo.Project)))
            {
                return;
            }

            await _projectRolesService.SetProjectRole(foo.Project, foo.User, foo.Role);
        }
コード例 #2
0
        public async Task <IActionResult> SetUserProjectRole([FromBody] PutUserRoleRequest request)
        {
            var keyAuthResult = await _authService.AuthByApiKey();

            if (keyAuthResult.User == null)
            {
                return(BadRequest(ErrorResponse.GetErrorList(keyAuthResult.ErrorText)));
            }

            var project = _ticketService.GetProject(request.Project);

            if (project == null)
            {
                return(BadRequest(ErrorResponse.GetErrorList($"Project: {request.Project} does not exist!")));
            }

            if (!await _authService.AuthorizeProjectRole(eProjectRoles.Manager, project.Id, user: keyAuthResult.User))
            {
                return(Unauthorized(ErrorResponse.GetUnauthorizedErrorList(keyAuthResult.User.Identity.Name, project.Name, eProjectRoles.Manager)));
            }

            await _projectRoleService.SetProjectRole(request.Project, request.User, request.Role);

            var baseUrl     = $"{HttpContext.Request.Scheme}://{HttpContext.Request.Host.ToUriComponent()}";
            var locationUrl = baseUrl + "/" + ApiRoutes.UserRoles.GetAllByUser.Replace("{userName}", request.User);

            var response = _mapper.Map <UserRoleResponse>(request);

            return(Created(locationUrl, response));
        }
コード例 #3
0
        public async Task <IActionResult> ProjectCreate([FromBody] CreateProjectRequest request)
        {
            var keyAuthResult = await _authService.AuthByApiKey();

            if (keyAuthResult.User == null)
            {
                return(BadRequest(ErrorResponse.GetErrorList(keyAuthResult.ErrorText)));
            }

            var newProject = _ticketService.AddProject(request.Name, request.Description);

            if (newProject == null)
            {
                return(BadRequest(ErrorResponse.GetErrorList("validation error")));
            }

            await _projectRoleService.SetProjectRole(newProject.Name, keyAuthResult.User.Identity.Name, eProjectRoles.Manager);

            var baseUrl     = $"{HttpContext.Request.Scheme}://{HttpContext.Request.Host.ToUriComponent()}";
            var locationUrl = baseUrl + "/" + ApiRoutes.Projects.Get.Replace("{projectName}", newProject.Name);

            var response = _mapper.Map <ProjectResponse>(newProject);

            return(Created(locationUrl, response));
        }