ef-keycloak-connect 1.5.1 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/services/keycloakService.js +32 -20
- package/services/teamsService.js +0 -0
package/package.json
CHANGED
|
@@ -171,8 +171,8 @@ class KeycloakService extends Keycloak {
|
|
|
171
171
|
|
|
172
172
|
//Fetching Groups data for each user.
|
|
173
173
|
try {
|
|
174
|
-
|
|
175
|
-
let teamData = await this.getUserSupervisedGroups(responseObject.id,
|
|
174
|
+
let permissions = intrsopectionResponse.data.authorization.permissions;
|
|
175
|
+
let teamData = await this.getUserSupervisedGroups(responseObject.id, permissions);
|
|
176
176
|
responseObject.userTeam = teamData.userTeam;
|
|
177
177
|
responseObject.supervisedTeams = teamData.supervisedTeams;
|
|
178
178
|
|
|
@@ -670,8 +670,8 @@ class KeycloakService extends Keycloak {
|
|
|
670
670
|
});
|
|
671
671
|
}
|
|
672
672
|
|
|
673
|
-
//function to be used only in teams implementation
|
|
674
|
-
async getUserSupervisedGroups(userId,
|
|
673
|
+
//function to be used only in teams implementation, this function contains teams implementation with permissions/policies
|
|
674
|
+
async getUserSupervisedGroups(userId, permissions) {
|
|
675
675
|
|
|
676
676
|
return new Promise(async (resolve, reject) => {
|
|
677
677
|
|
|
@@ -721,7 +721,6 @@ class KeycloakService extends Keycloak {
|
|
|
721
721
|
|
|
722
722
|
let groups = userGroup.data;
|
|
723
723
|
let userTeam = {};
|
|
724
|
-
let supervisedTeams = [];
|
|
725
724
|
|
|
726
725
|
let filteredTeams = groups.filter(group => !group.name.includes('_permission'));
|
|
727
726
|
|
|
@@ -738,31 +737,44 @@ class KeycloakService extends Keycloak {
|
|
|
738
737
|
delete config.data;
|
|
739
738
|
delete config.url;
|
|
740
739
|
|
|
741
|
-
let URL3 = keycloakConfig["auth-server-url"] + 'admin/realms/' + keycloakConfig.realm + '/groups';
|
|
742
|
-
config.url = URL3;
|
|
743
|
-
config.headers.Authorization = 'Bearer ' + token;
|
|
744
740
|
|
|
745
|
-
|
|
741
|
+
let teamPermission = permissions.filter(permission => permission.rsname == 'teams-dashboard');
|
|
742
|
+
team.supervisedTeams = [];
|
|
743
|
+
|
|
744
|
+
if (teamPermission.length > 0) {
|
|
746
745
|
|
|
747
|
-
let
|
|
746
|
+
let permissionScopes = teamPermission[0].scopes;
|
|
748
747
|
|
|
749
|
-
for (let
|
|
748
|
+
for (let scope of permissionScopes) {
|
|
749
|
+
let teamName = scope.split('-group');
|
|
750
750
|
|
|
751
|
-
let
|
|
751
|
+
let URL3 = keycloakConfig["auth-server-url"] + 'admin/realms/' + keycloakConfig.realm + '/groups?search=' + teamName[0] + '&exact=true';
|
|
752
|
+
config.url = URL3
|
|
752
753
|
|
|
753
|
-
|
|
754
|
-
|
|
754
|
+
try {
|
|
755
|
+
let groupData = await requestController.httpRequest(config, true);
|
|
756
|
+
|
|
757
|
+
if (groupData.data.length > 0) {
|
|
758
|
+
|
|
759
|
+
let supervisedTeam = {
|
|
760
|
+
'teamId': groupData.data[0].id,
|
|
761
|
+
'teamName': groupData.data[0].name
|
|
762
|
+
}
|
|
763
|
+
|
|
764
|
+
team.supervisedTeams.push(supervisedTeam);
|
|
765
|
+
}
|
|
766
|
+
} catch {
|
|
767
|
+
error = await this.checkErrorType(er);
|
|
768
|
+
reject(error);
|
|
755
769
|
}
|
|
756
|
-
}
|
|
770
|
+
}
|
|
757
771
|
|
|
758
|
-
team.supervisedTeams = supervisedTeams;
|
|
759
772
|
resolve(team);
|
|
760
773
|
|
|
761
|
-
}
|
|
762
|
-
|
|
763
|
-
error = await this.checkErrorType(er);
|
|
764
|
-
reject(error);
|
|
774
|
+
} else {
|
|
775
|
+
resolve(team);
|
|
765
776
|
}
|
|
777
|
+
|
|
766
778
|
} else {
|
|
767
779
|
reject({
|
|
768
780
|
status: 403,
|
package/services/teamsService.js
CHANGED
|
File without changes
|