ef-keycloak-connect 1.3.1 → 1.3.2

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ef-keycloak-connect",
3
- "version": "1.3.1",
3
+ "version": "1.3.2",
4
4
  "description": "Node JS keycloak adapter for authentication and authorization.",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -1067,9 +1067,42 @@ class KeycloakService extends Keycloak {
1067
1067
  async createUser(username, password, token, userRoles) {
1068
1068
 
1069
1069
  let assignRole = [];
1070
+ let assignGroups = ['agents', 'default'];
1070
1071
 
1071
1072
  return new Promise(async (resolve, reject) => {
1072
1073
 
1074
+
1075
+ for (let group of assignGroups) {
1076
+
1077
+ let URL2 = keycloakConfig["auth-server-url"] + 'admin/realms/' + keycloakConfig.realm + '/groups?search=' + group;
1078
+
1079
+ let config1 = {
1080
+ method: 'get',
1081
+ url: URL2,
1082
+ headers: {
1083
+ 'Content-Type': 'application/json',
1084
+ 'Authorization': `Bearer ${token}`
1085
+ }
1086
+ };
1087
+
1088
+ try {
1089
+ let groupData = await requestController.httpRequest(config1, true);
1090
+
1091
+ if (groupData.data.length == 0) {
1092
+
1093
+ let createdGroup = await this.createGroup(token, group);
1094
+
1095
+ }
1096
+ } catch (err) {
1097
+ reject({
1098
+ "status": err.response.status,
1099
+ "message": err.response.data.error_description
1100
+ });
1101
+ }
1102
+
1103
+ }
1104
+
1105
+
1073
1106
  let URL = `${keycloakConfig["auth-server-url"]}${keycloakConfig["USERNAME_ADMIN"]}/realms/${keycloakConfig["realm"]}/users`;
1074
1107
 
1075
1108
  let data = {
@@ -1081,11 +1114,10 @@ class KeycloakService extends Keycloak {
1081
1114
  value: password,
1082
1115
  temporary: false
1083
1116
  }
1084
- ]
1117
+ ],
1118
+ groups: ["agents", "default"]
1085
1119
  }
1086
1120
 
1087
-
1088
-
1089
1121
  let config = {
1090
1122
  method: 'post',
1091
1123
  url: URL,
@@ -1151,6 +1183,43 @@ class KeycloakService extends Keycloak {
1151
1183
  });
1152
1184
  }
1153
1185
 
1186
+ async createGroup(adminToken, groupName) {
1187
+
1188
+ return new Promise(async (resolve, reject) => {
1189
+
1190
+ let URL = `${keycloakConfig["auth-server-url"]}${keycloakConfig["USERNAME_ADMIN"]}/realms/${keycloakConfig["realm"]}/groups`;
1191
+
1192
+ let data = {
1193
+ name: groupName
1194
+ }
1195
+
1196
+
1197
+ let config = {
1198
+ method: 'post',
1199
+ url: URL,
1200
+ headers: {
1201
+ 'Authorization': `Bearer ${adminToken}`
1202
+ },
1203
+ data: data
1204
+ };
1205
+
1206
+ try {
1207
+
1208
+ let createdGroup = await requestController.httpRequest(config, false);
1209
+ resolve(createdGroup.data);
1210
+
1211
+ }
1212
+ catch (err) {
1213
+ reject({
1214
+ "status": err.response.status,
1215
+ "message": err.response.data.error_description
1216
+ });
1217
+ }
1218
+
1219
+ });
1220
+
1221
+ }
1222
+
1154
1223
  //Authenticating Finesse User
1155
1224
  async authenticateFinesse(username, password, finesseUrl, userRoles, finesseToken) {
1156
1225