public string GetSocialSecurityNumber(string username) { var personSession = _ticketProvider.GetWsSession(); // Search for persons var persons = _personService.searchPersonsFromRoot(new searchPersonsFromRootRequest { session = personSession, filter = $"(uid={username})", attrList = new string[] { } }); if (persons?.searchPersonsFromRootReturn == null || persons.searchPersonsFromRootReturn.Length == 0) { return(string.Empty); } var attributes = persons.searchPersonsFromRootReturn[0].attributes; var personNumber = attributes.FirstOrDefault(a => a.name == "personnumber")?.values?[0]; return(personNumber); }
public async Task InactivateUserAsync(string userName) { var itimUserDn = await _securityRepo.GetPersonObjectIdByNameAsync(userName); await _personService.suspendPersonAsync(_ticketProvider.GetWsSession(), itimUserDn); }
public async Task AddUserToOrganizationAsync(UserCore user, CustomerBasicInfo customer, string[] roleIds = null) { if (roleIds == null) { roleIds = new string[0]; } var personSearch = _personService.searchPersonsFromRoot(new searchPersonsFromRootRequest { session = WsSession, filter = $"(uid={user.UserName})", attrList = new string[] { } }); var person = personSearch?.searchPersonsFromRootReturn?.FirstOrDefault(); if (person == null) { throw new ArgumentNullException(nameof(user)); } var userOrganizations = person.attributes? .FirstOrDefault(a => a.name == "lmorg")?.values? .Where(r => r != customer.CustomerNo) .ToList() ?? new List <string>(); userOrganizations.Add(customer.CustomerNo); var newOrgs = userOrganizations.ToArray(); var addOrgResponse = await _personService.modifyPersonAsync(new modifyPersonRequest { session = _ticketProvider.GetWsSession(), personDN = person.itimDN, wsAttrs = new[] { new WSAttribute { name = "lmorg", values = newOrgs } } }); await _wsRequestService.WaitForCompletion(WsSession, addOrgResponse.modifyPersonReturn.requestId); var userOrgRoles = person.attributes? .FirstOrDefault(a => a.name == "lmorgroles")?.values? .Where(r => !r.StartsWith($"{customer.CustomerNo};")) //filter out all roles already in the org .ToList() ?? new List <string>(); userOrgRoles.AddRange(roleIds.Select(rid => $"{customer.CustomerNo};{rid}")); var newRoles = userOrgRoles.ToArray(); var addRoleResponse = await _personService.modifyPersonAsync(new modifyPersonRequest { session = _ticketProvider.GetWsSession(), personDN = person.itimDN, wsAttrs = new[] { new WSAttribute { name = "lmorgroles", values = newRoles } } }); await _wsRequestService.WaitForCompletion(WsSession, addRoleResponse.modifyPersonReturn.requestId); }