private async Task <Role> DetermineUserRoleAsync(string userId, ADServiceClient client) { bool badd = false; bool bmanage = false; var eSettings = _wtContext.EnvironmentSettings.FirstOrDefault(); string[] addRequestsADGroups = eSettings.AddRequestsADGroup.Split(';'); string[] manageRequestsADGroups = eSettings.ManageRequestsADGroup.Split(';'); var groups = await client.GetUserGroupsByNetworkIdAsync(userId, "true"); foreach (ADGroup group in groups) { try { foreach (var adGroup in addRequestsADGroups) { if (group.Name.ToLower().Trim() == adGroup.ToLower().Trim()) { badd = true; } } foreach (var adGroup in manageRequestsADGroups) { if (group.Name.ToLower().Trim() == adGroup.ToLower().Trim()) { bmanage = true; } } } catch (Exception e) { } } if (bmanage) { return(Role.Manage); } else if (badd) { return(Role.Add); } else { return(Role.View); } }
public async Task <IEnumerable <UserViewModel> > SearchUsers(string searchTerm) { var userVMs = new List <UserViewModel>(); if (!string.IsNullOrEmpty(searchTerm)) { ADServiceClient client = new ADServiceClient(); var users = await client.GetUserInfoExtendedByLastNameStartsWithAsync(searchTerm, "10"); for (int i = 0; i <= users.Length - 1; i++) { userVMs.Add(new UserViewModel() { displayName = users[i].FullName, email = users[i].Email, userId = users[i].NetworkId }); } } return(userVMs); }
public async Task <ServiceCallResult <UserViewModel> > GetCurrentUser() { ADServiceClient client = new ADServiceClient(); IIdentity id = User.Identity; //var user = await client.GetUserInfoExtendedByNetworkIdStartsWithAsync(id.GetLogin(), "1"); var user = await client.GetUserInfoExtendedByNetworkIdStartsWithAsync("CCC27", "1"); var uvm = new UserViewModel(); if (user != null && user.Length > 0) { uvm.displayName = user[0].FullName; uvm.userId = user[0].NetworkId; uvm.email = user[0].Email; uvm.Role = await DetermineUserRoleAsync(id.GetLogin(), client); uvm.Role = await DetermineUserRoleAsync("CCC27", client); } return(ServiceCallResult <UserViewModel> .CreateSuccessResult("User Found", uvm)); }