Skip to content

Commit df72ae4

Browse files
authored
Merge branch 'develop' into feature_2822
2 parents cdda3c9 + 53e92d5 commit df72ae4

14 files changed

+246
-229
lines changed

roles/middleware/files/FWO.Middleware.Server/AppDataImport.cs

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using FWO.Api.Client;
1+
using FWO.Api.Client;
22
using FWO.Api.Client.Queries;
33
using FWO.Basics;
44
using FWO.Config.Api;
@@ -80,14 +80,14 @@ private async Task InitLdap()
8080
requesterRoleDn = $"cn=requester,{internalLdap.RoleSearchPath}";
8181
implementerRoleDn = $"cn=implementer,{internalLdap.RoleSearchPath}";
8282
reviewerRoleDn = $"cn=reviewer,{internalLdap.RoleSearchPath}";
83-
allInternalGroups = internalLdap.GetAllInternalGroups();
83+
allInternalGroups = await internalLdap.GetAllInternalGroups();
8484
if (globalConfig.OwnerLdapId == GlobalConst.kLdapInternalId)
8585
{
8686
allGroups = allInternalGroups; // TODO: check if ref is ok here
8787
}
8888
else
8989
{
90-
allGroups = ownerGroupLdap.GetAllGroupObjects(globalConfig.OwnerLdapGroupNames.Replace(GlobalConst.kAppIdPlaceholder, "*"));
90+
allGroups = await ownerGroupLdap.GetAllGroupObjects(globalConfig.OwnerLdapGroupNames.Replace(GlobalConst.kAppIdPlaceholder, "*"));
9191
}
9292
}
9393

@@ -189,7 +189,7 @@ private async Task<bool> SaveApp(ModellingImportAppData incomingApp)
189189
private async Task<string> NewApp(ModellingImportAppData incomingApp)
190190
{
191191
string userGroupDn;
192-
userGroupDn = globalConfig.ManageOwnerLdapGroups ? CreateUserGroup(incomingApp) : GetGroupDn(incomingApp.ExtAppId);
192+
userGroupDn = globalConfig.ManageOwnerLdapGroups ? await CreateUserGroup(incomingApp) : GetGroupDn(incomingApp.ExtAppId);
193193

194194
var variables = new
195195
{
@@ -206,7 +206,7 @@ private async Task<string> NewApp(ModellingImportAppData incomingApp)
206206
{
207207
if(incomingApp.MainUser != null && incomingApp.MainUser != "")
208208
{
209-
UpdateRoles(incomingApp.MainUser);
209+
await UpdateRoles(incomingApp.MainUser);
210210
}
211211
int appId = returnIds[0].NewId;
212212
foreach (var appServer in incomingApp.AppServers)
@@ -224,7 +224,7 @@ private async Task<string> UpdateApp(ModellingImportAppData incomingApp, FwoOwne
224224
{
225225
if (string.IsNullOrEmpty(existingApp.GroupDn) && allGroups.FirstOrDefault(x => x.GroupDn == userGroupDn) == null)
226226
{
227-
string newDn = CreateUserGroup(incomingApp);
227+
string newDn = await CreateUserGroup(incomingApp);
228228
if(newDn != userGroupDn) // may this happen?
229229
{
230230
Log.WriteInfo("Import App Data", $"New UserGroup DN {newDn} differs from settings value {userGroupDn}.");
@@ -233,7 +233,7 @@ private async Task<string> UpdateApp(ModellingImportAppData incomingApp, FwoOwne
233233
}
234234
else
235235
{
236-
UpdateUserGroup(incomingApp, userGroupDn);
236+
await UpdateUserGroup(incomingApp, userGroupDn);
237237
}
238238
}
239239

@@ -250,7 +250,7 @@ private async Task<string> UpdateApp(ModellingImportAppData incomingApp, FwoOwne
250250
await apiConnection.SendQueryAsync<ReturnIdWrapper>(OwnerQueries.updateOwner, Variables);
251251
if(incomingApp.MainUser != null && incomingApp.MainUser != "")
252252
{
253-
UpdateRoles(incomingApp.MainUser);
253+
await UpdateRoles(incomingApp.MainUser);
254254
}
255255
await ImportAppServers(incomingApp, existingApp.Id);
256256
return userGroupDn;
@@ -290,7 +290,7 @@ private async Task AddAllGroupMembersToUiUser(string userGroupDn)
290290
{
291291
foreach (Ldap ldap in connectedLdaps)
292292
{
293-
foreach (string memberDn in ldap.GetGroupMembers(userGroupDn))
293+
foreach (string memberDn in await ldap.GetGroupMembers(userGroupDn))
294294
{
295295
UiUser? uiUser = await ConvertLdapToUiUser(apiConnection, memberDn);
296296
if(uiUser != null)
@@ -309,7 +309,7 @@ private async Task AddAllGroupMembersToUiUser(string userGroupDn)
309309
{
310310
if (!string.IsNullOrEmpty(ldap.UserSearchPath) && userDn.ToLower().Contains(ldap.UserSearchPath!.ToLower()))
311311
{
312-
LdapEntry? ldapUser = ldap.GetUserDetailsFromLdap(userDn);
312+
LdapEntry? ldapUser = await ldap.GetUserDetailsFromLdap(userDn);
313313

314314
if (ldapUser != null)
315315
{
@@ -366,38 +366,38 @@ private async Task<Tenant> DeriveTenantFromLdap(Ldap ldap, LdapEntry ldapUser)
366366
return tenant;
367367
}
368368

369-
private string CreateUserGroup(ModellingImportAppData incomingApp)
369+
private async Task<string> CreateUserGroup(ModellingImportAppData incomingApp)
370370
{
371371
string groupDn = "";
372372
if (incomingApp.Modellers != null && incomingApp.Modellers.Count > 0
373373
|| incomingApp.ModellerGroups != null && incomingApp.ModellerGroups.Count > 0)
374374
{
375375
string groupName = GetGroupName(incomingApp.ExtAppId);
376-
groupDn = internalLdap.AddGroup(groupName, true);
376+
groupDn = await internalLdap.AddGroup(groupName, true);
377377
if (incomingApp.Modellers != null)
378378
{
379379
foreach (var modeller in incomingApp.Modellers)
380380
{
381381
// add user to internal group:
382-
internalLdap.AddUserToEntry(modeller, groupDn);
382+
await internalLdap.AddUserToEntry(modeller, groupDn);
383383
}
384384
}
385385
if (incomingApp.ModellerGroups != null)
386386
{
387387
foreach (var modellerGrp in incomingApp.ModellerGroups)
388388
{
389-
internalLdap.AddUserToEntry(modellerGrp, groupDn);
389+
await internalLdap.AddUserToEntry(modellerGrp, groupDn);
390390
}
391391
}
392-
internalLdap.AddUserToEntry(groupDn, modellerRoleDn);
393-
internalLdap.AddUserToEntry(groupDn, requesterRoleDn);
394-
internalLdap.AddUserToEntry(groupDn, implementerRoleDn);
395-
internalLdap.AddUserToEntry(groupDn, reviewerRoleDn);
392+
await internalLdap.AddUserToEntry(groupDn, modellerRoleDn);
393+
await internalLdap.AddUserToEntry(groupDn, requesterRoleDn);
394+
await internalLdap.AddUserToEntry(groupDn, implementerRoleDn);
395+
await internalLdap.AddUserToEntry(groupDn, reviewerRoleDn);
396396
}
397397
return groupDn;
398398
}
399399

400-
private string UpdateUserGroup(ModellingImportAppData incomingApp, string groupDn)
400+
private async Task<string> UpdateUserGroup(ModellingImportAppData incomingApp, string groupDn)
401401
{
402402
List<string> existingMembers = (allGroups.FirstOrDefault(x => x.GroupDn == groupDn) ?? throw new Exception("Group could not be found.")).Members;
403403
if (incomingApp.Modellers != null)
@@ -406,7 +406,7 @@ private string UpdateUserGroup(ModellingImportAppData incomingApp, string groupD
406406
{
407407
if (existingMembers.FirstOrDefault(x => x.Equals(modeller, StringComparison.CurrentCultureIgnoreCase)) == null)
408408
{
409-
internalLdap.AddUserToEntry(modeller, groupDn);
409+
await internalLdap.AddUserToEntry(modeller, groupDn);
410410
}
411411
}
412412
}
@@ -416,7 +416,7 @@ private string UpdateUserGroup(ModellingImportAppData incomingApp, string groupD
416416
{
417417
if (existingMembers.FirstOrDefault(x => x.Equals(modellerGrp, StringComparison.CurrentCultureIgnoreCase)) == null)
418418
{
419-
internalLdap.AddUserToEntry(modellerGrp, groupDn);
419+
await internalLdap.AddUserToEntry(modellerGrp, groupDn);
420420
}
421421
}
422422
}
@@ -425,31 +425,31 @@ private string UpdateUserGroup(ModellingImportAppData incomingApp, string groupD
425425
if ((incomingApp.Modellers == null || incomingApp.Modellers.FirstOrDefault(x => x.Equals(member, StringComparison.CurrentCultureIgnoreCase)) == null)
426426
&& (incomingApp.ModellerGroups == null || incomingApp.ModellerGroups.FirstOrDefault(x => x.Equals(member, StringComparison.CurrentCultureIgnoreCase)) == null))
427427
{
428-
internalLdap.RemoveUserFromEntry(member, groupDn);
428+
await internalLdap.RemoveUserFromEntry(member, groupDn);
429429
}
430430
}
431-
UpdateRoles(groupDn);
431+
await UpdateRoles(groupDn);
432432
return groupDn;
433433
}
434434

435-
private void UpdateRoles(string dn)
435+
private async Task UpdateRoles(string dn)
436436
{
437-
List<string> roles = internalLdap.GetRoles([dn]);
437+
List<string> roles = await internalLdap.GetRoles([dn]);
438438
if(!roles.Contains(Roles.Modeller))
439439
{
440-
internalLdap.AddUserToEntry(dn, modellerRoleDn);
440+
await internalLdap.AddUserToEntry(dn, modellerRoleDn);
441441
}
442442
if(!roles.Contains(Roles.Requester))
443443
{
444-
internalLdap.AddUserToEntry(dn, requesterRoleDn);
444+
await internalLdap.AddUserToEntry(dn, requesterRoleDn);
445445
}
446446
if(!roles.Contains(Roles.Implementer))
447447
{
448-
internalLdap.AddUserToEntry(dn, implementerRoleDn);
448+
await internalLdap.AddUserToEntry(dn, implementerRoleDn);
449449
}
450450
if(!roles.Contains(Roles.Reviewer))
451451
{
452-
internalLdap.AddUserToEntry(dn, reviewerRoleDn);
452+
await internalLdap.AddUserToEntry(dn, reviewerRoleDn);
453453
}
454454
}
455455

roles/middleware/files/FWO.Middleware.Server/Controllers/AuthenticationServerController.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using FWO.Api.Client;
1+
using FWO.Api.Client;
22
using FWO.Api.Client.Queries;
33
using FWO.Basics;
44
using FWO.Data;
@@ -44,12 +44,12 @@ public AuthenticationServerController(ApiConnection apiConnection, List<Ldap> ld
4444
/// <returns></returns>
4545
[HttpGet("TestConnection")]
4646
[Authorize(Roles = $"{Roles.Admin}, {Roles.Auditor}")]
47-
public ActionResult<string> TestConnection([FromBody] LdapGetUpdateParameters parameters)
47+
public async Task<ActionResult<string>> TestConnection([FromBody] LdapGetUpdateParameters parameters)
4848
{
4949
try
5050
{
5151
Ldap ldapToTest = new Ldap(parameters);
52-
ldapToTest.TestConnection();
52+
await ldapToTest.TestConnection();
5353
}
5454
catch (Exception e)
5555
{

roles/middleware/files/FWO.Middleware.Server/Controllers/AuthenticationTokenController.cs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using FWO.Api.Client;
1+
using FWO.Api.Client;
22
using FWO.Api.Client.Queries;
33
using FWO.Basics;
44
using FWO.Data;
@@ -194,10 +194,10 @@ public async Task<List<string>> GetGroups(LdapEntry ldapUser, Ldap ldap)
194194
{
195195
if (currentLdap.IsInternal())
196196
{
197-
ldapRoleRequests.Add(Task.Run(() =>
197+
ldapRoleRequests.Add(Task.Run(async() =>
198198
{
199199
// Get groups from current Ldap
200-
List<string> currentGroups = currentLdap.GetGroups([ldapUser.Dn]);
200+
List<string> currentGroups = await currentLdap.GetGroups([ldapUser.Dn]);
201201
lock (groupsLock)
202202
{
203203
currentGroups = Array.ConvertAll(currentGroups.ToArray(), x => "cn=" + x + "," + currentLdap.GroupSearchPath).ToList();
@@ -230,13 +230,13 @@ public async Task<List<string>> GetGroups(LdapEntry ldapUser, Ldap ldap)
230230

231231
foreach (Ldap currentLdap in ldaps.Where(x => x.Active))
232232
{
233-
ldapValidationRequests.Add(Task.Run(() =>
233+
ldapValidationRequests.Add(Task.Run(async() =>
234234
{
235235
Log.WriteDebug("User Authentication", $"Trying to authenticate {user.Name + " " + user.Dn} against LDAP {currentLdap.Address}:{currentLdap.Port} ...");
236236

237237
try
238238
{
239-
LdapEntry? currentLdapEntry = currentLdap.GetLdapEntry(user, validatePassword);
239+
LdapEntry? currentLdapEntry = await currentLdap.GetLdapEntry(user, validatePassword);
240240

241241
if (currentLdapEntry != null)
242242
{
@@ -304,10 +304,10 @@ public async Task<List<string>> GetRoles(UiUser user)
304304
// if current Ldap has roles stored
305305
if (currentLdap.HasRoleHandling())
306306
{
307-
ldapRoleRequests.Add(Task.Run(() =>
307+
ldapRoleRequests.Add(Task.Run(async() =>
308308
{
309309
// Get roles from current Ldap
310-
List<string> currentRoles = currentLdap.GetRoles(dnList);
310+
List<string> currentRoles = await currentLdap.GetRoles(dnList);
311311

312312
lock (rolesLock)
313313
{

roles/middleware/files/FWO.Middleware.Server/Controllers/GroupController.cs

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
using FWO.Basics;
1+
using FWO.Basics;
22
using FWO.Data;
33
using FWO.Data.Middleware;
44
using FWO.Logging;
@@ -43,10 +43,10 @@ public async Task<ActionResult<List<GroupGetReturnParameters>>> Get()
4343
{
4444
if (currentLdap.IsInternal() && currentLdap.HasGroupHandling())
4545
{
46-
ldapGroupRequests.Add(Task.Run(() =>
46+
ldapGroupRequests.Add(Task.Run(async() =>
4747
{
4848
// Get all groups from internal Ldap
49-
List<GroupGetReturnParameters> currentGroups = currentLdap.GetAllInternalGroups();
49+
List<GroupGetReturnParameters> currentGroups = await currentLdap.GetAllInternalGroups();
5050
foreach (GroupGetReturnParameters currentGroup in currentGroups)
5151
allGroups.Add(currentGroup);
5252
}));
@@ -85,9 +85,9 @@ public async Task<string> Create([FromBody] GroupAddDeleteParameters parameters)
8585
// Try to add group to current Ldap
8686
if (currentLdap.IsInternal() && currentLdap.IsWritable() && currentLdap.HasGroupHandling())
8787
{
88-
workers.Add(Task.Run(() =>
88+
workers.Add(Task.Run(async() =>
8989
{
90-
string actDn = currentLdap.AddGroup(parameters.GroupName, parameters.OwnerGroup);
90+
string actDn = await currentLdap.AddGroup(parameters.GroupName, parameters.OwnerGroup);
9191
if(actDn != "")
9292
{
9393
groupDn = actDn;
@@ -124,9 +124,9 @@ public async Task<bool> Delete([FromBody] GroupAddDeleteParameters parameters)
124124
// Try to delete group in current Ldap
125125
if (currentLdap.IsInternal() && currentLdap.IsWritable() && currentLdap.HasGroupHandling())
126126
{
127-
workers.Add(Task.Run(() =>
127+
workers.Add(Task.Run(async() =>
128128
{
129-
if(currentLdap.DeleteGroup(parameters.GroupName))
129+
if(await currentLdap.DeleteGroup(parameters.GroupName))
130130
{
131131
groupDeleted = true;
132132
Log.WriteAudit("DeleteGroup", $"Group {parameters.GroupName} deleted from {currentLdap.Host()}");
@@ -162,9 +162,9 @@ public async Task<string> Edit([FromBody] GroupEditParameters parameters)
162162
// Try to update group in current Ldap
163163
if (currentLdap.IsInternal() && currentLdap.IsWritable() && currentLdap.HasGroupHandling())
164164
{
165-
workers.Add(Task.Run(() =>
165+
workers.Add(Task.Run(async() =>
166166
{
167-
string newDn = currentLdap.UpdateGroup(parameters.OldGroupName, parameters.NewGroupName);
167+
string newDn = await currentLdap.UpdateGroup(parameters.OldGroupName, parameters.NewGroupName);
168168
if (newDn != "")
169169
{
170170
groupUpdatedDn = newDn;
@@ -198,10 +198,10 @@ public async Task<List<string>> Get([FromBody] GroupGetParameters parameters)
198198
{
199199
if ((currentLdap.Id == parameters.LdapId || parameters.LdapId == 0) && currentLdap.HasGroupHandling())
200200
{
201-
await Task.Run(() =>
201+
await Task.Run(async() =>
202202
{
203203
// Get all groups from current Ldap
204-
allGroups = currentLdap.GetAllGroups(parameters.SearchPattern);
204+
allGroups = await currentLdap.GetAllGroups(parameters.SearchPattern);
205205
});
206206
}
207207
}
@@ -232,9 +232,9 @@ public async Task<bool> AddUser([FromBody] GroupAddDeleteUserParameters paramete
232232
// Try to add user to group in current Ldap
233233
if (currentLdap.IsInternal() && currentLdap.IsWritable() && currentLdap.HasGroupHandling())
234234
{
235-
workers.Add(Task.Run(() =>
235+
workers.Add(Task.Run(async() =>
236236
{
237-
if(currentLdap.AddUserToEntry(parameters.UserDn, parameters.GroupDn))
237+
if(await currentLdap.AddUserToEntry(parameters.UserDn, parameters.GroupDn))
238238
{
239239
userAdded = true;
240240
Log.WriteAudit("AddUserToGroup", $"user {parameters.UserDn} successfully added to group {parameters.GroupDn} in {currentLdap.Host()}");
@@ -270,9 +270,9 @@ public async Task<bool> RemoveUser([FromBody] GroupAddDeleteUserParameters param
270270
// Try to remove user from group in current Ldap
271271
if (currentLdap.IsInternal() && currentLdap.IsWritable() && currentLdap.HasGroupHandling())
272272
{
273-
workers.Add(Task.Run(() =>
273+
workers.Add(Task.Run(async() =>
274274
{
275-
if(currentLdap.RemoveUserFromEntry(parameters.UserDn, parameters.GroupDn))
275+
if(await currentLdap.RemoveUserFromEntry(parameters.UserDn, parameters.GroupDn))
276276
{
277277
userRemoved = true;
278278
Log.WriteAudit("RemoveUserFromGroup", $"Removed user {parameters.UserDn} from {parameters.GroupDn} in {currentLdap.Host()}");

roles/middleware/files/FWO.Middleware.Server/Controllers/RoleController.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,10 @@ public async Task<List<RoleGetReturnParameters>> Get()
4343
{
4444
if (currentLdap.HasRoleHandling())
4545
{
46-
ldapRoleRequests.Add(Task.Run(() =>
46+
ldapRoleRequests.Add(Task.Run(async() =>
4747
{
4848
// if current Ldap has roles stored: Get all roles from current Ldap
49-
List<RoleGetReturnParameters> currentRoles = currentLdap.GetAllRoles();
49+
List<RoleGetReturnParameters> currentRoles = await currentLdap.GetAllRoles();
5050
foreach (RoleGetReturnParameters role in currentRoles)
5151
allRoles.Add(role);
5252
}));
@@ -80,9 +80,9 @@ public async Task<bool> AddUser([FromBody] RoleAddDeleteUserParameters parameter
8080
// Try to add user to role in current Ldap
8181
if (currentLdap.IsWritable() && currentLdap.HasRoleHandling())
8282
{
83-
ldapRoleRequests.Add(Task.Run(() =>
83+
ldapRoleRequests.Add(Task.Run(async() =>
8484
{
85-
if (currentLdap.AddUserToEntry(parameters.UserDn, parameters.Role))
85+
if (await currentLdap.AddUserToEntry(parameters.UserDn, parameters.Role))
8686
{
8787
userAdded = true;
8888
Log.WriteAudit("AddUserToRole", $"user {parameters.UserDn} successfully added to role {parameters.Role} in {currentLdap.Host()}");
@@ -118,9 +118,9 @@ public async Task<bool> RemoveUser([FromBody] RoleAddDeleteUserParameters parame
118118
// Try to remove user from role in current Ldap
119119
if (currentLdap.IsWritable() && currentLdap.HasRoleHandling())
120120
{
121-
ldapRoleRequests.Add(Task.Run(() =>
121+
ldapRoleRequests.Add(Task.Run(async() =>
122122
{
123-
if (currentLdap.RemoveUserFromEntry(parameters.UserDn, parameters.Role))
123+
if (await currentLdap.RemoveUserFromEntry(parameters.UserDn, parameters.Role))
124124
{
125125
userRemoved = true;
126126
Log.WriteAudit("RemoveUserFromRole", $"Removed user {parameters.UserDn} from {parameters.Role} in {currentLdap.Host()}");

0 commit comments

Comments
 (0)