public async Task WhenVolunteerIsSameAsCreatedBy_ReturnsTrue() { int jobId = 1; int createdByUserID = 1; _refferingGroupID = 1; _getjobdetailsResponse = new GetJobDetailsResponse() { JobSummary = new JobSummary() { VolunteerUserID = 1 } }; Dictionary <int, List <int> > roles = new Dictionary <int, List <int> >(); roles.Add(1, new List <int>() { (int)GroupRoles.Member }); _getUserRolesResponse = new GetUserRolesResponse() { UserGroupRoles = roles }; var response = await _classUnderTest.HasPermissionToChangeStatusAsync(jobId, createdByUserID, true, CancellationToken.None); _repository.Verify(x => x.GetJobDetails(It.IsAny <int>()), Times.Once); _repository.Verify(x => x.GetReferringGroupIDForJobAsync(It.IsAny <int>(), It.IsAny <CancellationToken>()), Times.Never); _groupService.Verify(x => x.GetUserRoles(It.IsAny <int>(), It.IsAny <CancellationToken>()), Times.Never); Assert.AreEqual(true, response); }
public async Task <IActionResult> Run( [HttpTrigger(AuthorizationLevel.Function, "get", Route = null)] [RequestBodyType(typeof(GetUserRolesRequest), "get user roles")] GetUserRolesRequest req, CancellationToken cancellationToken) { try { if (req.IsValid(out var validationResults)) { GetUserRolesResponse response = await _mediator.Send(req, cancellationToken); return(new OkObjectResult(ResponseWrapper <GetUserRolesResponse, GroupServiceErrorCode> .CreateSuccessfulResponse(response))); } else { return(new ObjectResult(ResponseWrapper <GetUserRolesResponse, GroupServiceErrorCode> .CreateUnsuccessfulResponse(GroupServiceErrorCode.ValidationError, validationResults)) { StatusCode = 422 }); } } catch (Exception ex) { _logger.LogErrorAndNotifyNewRelic($"Unhandled error in GetUserGroups", ex); return(new ObjectResult(ResponseWrapper <GetUserRolesResponse, GroupServiceErrorCode> .CreateUnsuccessfulResponse(GroupServiceErrorCode.InternalServerError, "Internal Error")) { StatusCode = StatusCodes.Status500InternalServerError }); } }
public async Task <IActionResult> GetUserRoles(string id, [FromHeader] string authorization) { if (!ModelState.IsValid) { BadRequest(id); } HttpParameters httpParameters = HttpParametersService .GetHttpParameters( null, ConfigHelper.AppSetting(Constants.ServerUrls, Constants.GetUserRoles), HttpMethod.Get, id, authorization ); GetUserRolesResponse getUserRolesResult = await _gWService.Get <GetUserRolesResponse>(httpParameters); if (getUserRolesResult.StatusCode == 404) { return(await ResponseService.GetResponse <NotFoundObjectResult, GetUserRolesResponse>(getUserRolesResult, ModelState)); } else if (getUserRolesResult.StatusCode == 401) { return(await ResponseService.GetResponse <UnauthorizedObjectResult, GetUserRolesResponse>(getUserRolesResult, ModelState)); } else if (getUserRolesResult.StatusCode != 200) { return(await ResponseService.GetResponse <BadRequestObjectResult, GetUserRolesResponse>(getUserRolesResult, ModelState)); } return(new OkObjectResult(getUserRolesResult)); }
public async Task WhenVolunteerIsDiffentToCreatedByButUserIsNotTaskAdmin_ReturnsFalse() { int jobId = 1; int createdByUserID = 1; _refferingGroupID = 1; _getjobdetailsResponse = new GetJobDetailsResponse() { JobSummary = new JobSummary() { VolunteerUserID = 2 } }; Dictionary <int, List <int> > roles = new Dictionary <int, List <int> >(); roles.Add(1, new List <int>() { (int)GroupRoles.Member }); _getUserRolesResponse = new GetUserRolesResponse() { UserGroupRoles = roles }; _getGroupResponse = new GetGroupResponse() { Group = new Group() { GroupId = 1, GroupKey = "KEY", GroupName = "GroupName", ParentGroupId = 2 } }; var response = await _classUnderTest.HasPermissionToChangeStatusAsync(jobId, createdByUserID, true, CancellationToken.None); _repository.Verify(x => x.GetJobDetails(It.IsAny <int>()), Times.Once); _repository.Verify(x => x.GetReferringGroupIDForJobAsync(It.IsAny <int>(), It.IsAny <CancellationToken>()), Times.Once); _groupService.Verify(x => x.GetUserRoles(It.IsAny <int>(), It.IsAny <CancellationToken>()), Times.Once); _groupService.Verify(x => x.GetGroup(It.IsAny <int>()), Times.Once); Assert.AreEqual(false, response); }
public GetUserRolesResponse Any(GetUserRolesRequest request) { GetUserRolesResponse resp = new GetUserRolesResponse(); using (var con = this.TenantDbFactory.ObjectsDB.GetNewConnection()) { con.Open(); string sql = string.Empty; if (request.id > 0) { sql = @"SELECT id, role_name, description FROM eb_roles; SELECT id, role_name, description FROM eb_roles WHERE id IN(SELECT role_id FROM eb_role2user WHERE user_id = @id AND eb_del = FALSE)"; } else { sql = "SELECT id,role_name, description FROM eb_roles"; } DbParameter[] parameters = { this.TenantDbFactory.ObjectsDB.GetNewParameter("id", System.Data.DbType.Int32, request.id) }; var dt = this.TenantDbFactory.ObjectsDB.DoQueries(sql, parameters); Dictionary <string, object> returndata = new Dictionary <string, object>(); List <int> subroles = new List <int>(); foreach (EbDataRow dr in dt.Tables[0].Rows) { List <string> list = new List <string>(); list.Add(dr[1].ToString()); list.Add(dr[2].ToString()); returndata[dr[0].ToString()] = list; } if (dt.Tables.Count > 1) { foreach (EbDataRow dr in dt.Tables[1].Rows) { subroles.Add(Convert.ToInt32(dr[0])); } returndata.Add("roles", subroles); } resp.Data = returndata; } return(resp); }
public static GetUserRolesResponse WrapGetUserRoles( string userId, string email, List <string> roles, int statusCode) { GetUserRolesResponse responseMessage = new GetUserRolesResponse() { Roles = roles, Email = email, UserId = userId, Code = "all_user_roles", Description = "All roles for the specified user", Error = "no_error", StatusCode = statusCode }; return(responseMessage); }
public async Task WhenAccessRestrictedByRole_ReturnsCorrectResponse(int createdByUserId, GroupRoles role, Fulfillable fulfillable, int timesGroupMemberCalled) { requestId = 1; _validPostcode = true; _emailSent = true; int referringGroupId = -20; Guid guid = Guid.NewGuid(); var request = new PostNewRequestForHelpRequest { HelpRequest = new HelpRequest { RequestorType = RequestorType.Myself, Recipient = new RequestPersonalDetails { Address = new Address { Postcode = "test", } }, VolunteerUserId = 1, CreatedByUserId = createdByUserId, ReferringGroupId = referringGroupId }, NewJobsRequest = new NewJobsRequest { Jobs = new List <Job> { new Job { Guid = guid, HealthCritical = true, DueDays = 5, SupportActivity = SupportActivities.Shopping } } } }; _formVariantResponse = new GetRequestHelpFormVariantResponse() { AccessRestrictedByRole = true, RequestorDefinedByGroup = true, RequestHelpFormVariant = RequestHelpFormVariant.Default, TargetGroups = TargetGroups.GenericGroup, RequestorPersonalDetails = new RequestPersonalDetails() { FirstName = "First", LastName = "Last", EmailAddress = "Email", MobileNumber = "Mobile", OtherNumber = "Other" }, SuppressRecipientPersonalDetails = true }; _getGroupMemberResponse = new GetGroupMemberResponse() { UserInGroup = new UserInGroup() { UserId = 1, GroupId = 1, GroupRoles = new List <GroupRoles>() { role } } }; _getGroupResponse = new GetGroupResponse() { Group = new Group() { GroupId = referringGroupId } }; _getUserRolesResponse = new GetUserRolesResponse() { UserGroupRoles = new Dictionary <int, List <int> >() }; _getNewRequestActionsResponse = new GetNewRequestActionsResponse() { Actions = new Dictionary <Guid, TaskAction>(), RequestTaskActions = new Dictionary <NewTaskAction, List <int> >() }; _getNewRequestActionsResponse.Actions.Add(guid, new TaskAction() { TaskActions = new Dictionary <NewTaskAction, List <int> >() }); _getNewRequestActionsResponse.Actions[guid].TaskActions.Add(NewTaskAction.AssignToVolunteer, new List <int>() { 1 }); var response = await _classUnderTest.Handle(request, new CancellationToken()); _groupService.Verify(x => x.GetRequestHelpFormVariant(It.IsAny <int>(), It.IsAny <string>(), It.IsAny <CancellationToken>()), Times.Once); _groupService.Verify(x => x.GetGroupMember(It.IsAny <GetGroupMemberRequest>()), Times.Exactly(timesGroupMemberCalled)); Assert.AreEqual(fulfillable, response.Fulfillable); }