Add admin role when adding shared scopes

location-fix
Rajitha Kumara 1 year ago
parent 98954c9374
commit 3a63f948a0

@ -18,6 +18,9 @@
package io.entgra.device.mgt.core.apimgt.extension.rest.api.util; package io.entgra.device.mgt.core.apimgt.extension.rest.api.util;
import java.util.HashSet;
import java.util.Set;
/** /**
* This class represents the scope data. * This class represents the scope data.
*/ */
@ -53,7 +56,7 @@ public class ScopeUtils {
} }
public void setRoles(String roles) { public void setRoles(String roles) {
this.roles = roles; this.roles = removeDuplicatesFromRoleString(roles);
} }
public String getDescription() { public String getDescription() {
@ -75,4 +78,13 @@ public class ScopeUtils {
"}"; "}";
return jsonString; return jsonString;
} }
private static String removeDuplicatesFromRoleString(String roleString) {
String[] roles = roleString.split(",");
Set<String> roleSet = new HashSet<>();
for(String role : roles) {
roleSet.add(role.trim());
}
return String.join(",", roleSet);
}
} }

@ -100,6 +100,7 @@ public class APIPublisherServiceImpl implements APIPublisherService {
public static final String SUBSCRIPTION_TO_CURRENT_TENANT = "CURRENT_TENANT"; public static final String SUBSCRIPTION_TO_CURRENT_TENANT = "CURRENT_TENANT";
public static final String API_GLOBAL_VISIBILITY = "PUBLIC"; public static final String API_GLOBAL_VISIBILITY = "PUBLIC";
public static final String API_PRIVATE_VISIBILITY = "PRIVATE"; public static final String API_PRIVATE_VISIBILITY = "PRIVATE";
private static final String ADMIN_ROLE_KEY = ",admin";
private static final Log log = LogFactory.getLog(APIPublisherServiceImpl.class); private static final Log log = LogFactory.getLog(APIPublisherServiceImpl.class);
@ -186,7 +187,7 @@ public class APIPublisherServiceImpl implements APIPublisherService {
scope.setName(apiScope.getName()); scope.setName(apiScope.getName());
scope.setDescription(apiScope.getDescription()); scope.setDescription(apiScope.getDescription());
scope.setKey(apiScope.getKey()); scope.setKey(apiScope.getKey());
scope.setRoles(apiScope.getRoles()); scope.setRoles(apiScope.getRoles() + ADMIN_ROLE_KEY);
publisherRESTAPIServices.addNewSharedScope(apiApplicationKey, accessTokenInfo, scope); publisherRESTAPIServices.addNewSharedScope(apiApplicationKey, accessTokenInfo, scope);
} }
} }
@ -259,7 +260,7 @@ public class APIPublisherServiceImpl implements APIPublisherService {
scope.setName(apiScope.getName()); scope.setName(apiScope.getName());
scope.setDescription(apiScope.getDescription()); scope.setDescription(apiScope.getDescription());
scope.setKey(apiScope.getKey()); scope.setKey(apiScope.getKey());
scope.setRoles(apiScope.getRoles()); scope.setRoles(apiScope.getRoles() + ADMIN_ROLE_KEY);
publisherRESTAPIServices.addNewSharedScope(apiApplicationKey, accessTokenInfo, scope); publisherRESTAPIServices.addNewSharedScope(apiApplicationKey, accessTokenInfo, scope);
} }
@ -280,7 +281,7 @@ public class APIPublisherServiceImpl implements APIPublisherService {
scope.setName(apiScope.getName()); scope.setName(apiScope.getName());
scope.setDescription(apiScope.getDescription()); scope.setDescription(apiScope.getDescription());
scope.setKey(apiScope.getKey()); scope.setKey(apiScope.getKey());
scope.setRoles(apiScope.getRoles()); scope.setRoles(apiScope.getRoles() + ADMIN_ROLE_KEY);
publisherRESTAPIServices.addNewSharedScope(apiApplicationKey, accessTokenInfo, scope); publisherRESTAPIServices.addNewSharedScope(apiApplicationKey, accessTokenInfo, scope);
} }
} }
@ -460,7 +461,7 @@ public class APIPublisherServiceImpl implements APIPublisherService {
scope.setName(scopeMapping.getName()); scope.setName(scopeMapping.getName());
scope.setDescription(scopeMapping.getName()); scope.setDescription(scopeMapping.getName());
scope.setKey(scopeMapping.getKey()); scope.setKey(scopeMapping.getKey());
scope.setRoles(scopeMapping.getDefaultRoles()); scope.setRoles(scopeMapping.getDefaultRoles() + ADMIN_ROLE_KEY);
publisherRESTAPIServices.addNewSharedScope(apiApplicationKey, accessTokenInfo, scope); publisherRESTAPIServices.addNewSharedScope(apiApplicationKey, accessTokenInfo, scope);
} }
} catch (BadRequestException | UnexpectedResponseException | APIServicesException e) { } catch (BadRequestException | UnexpectedResponseException | APIServicesException e) {

@ -594,7 +594,7 @@ CREATE TABLE IF NOT EXISTS DM_METADATA (
METADATA_ID INT AUTO_INCREMENT NOT NULL, METADATA_ID INT AUTO_INCREMENT NOT NULL,
DATA_TYPE VARCHAR(16) NOT NULL, DATA_TYPE VARCHAR(16) NOT NULL,
METADATA_KEY VARCHAR(128) NOT NULL, METADATA_KEY VARCHAR(128) NOT NULL,
METADATA_VALUE VARCHAR(20000) NOT NULL, METADATA_VALUE VARCHAR(65535) NOT NULL,
TENANT_ID INTEGER NOT NULL, TENANT_ID INTEGER NOT NULL,
PRIMARY KEY (METADATA_ID), PRIMARY KEY (METADATA_ID),
CONSTRAINT METADATA_KEY_TENANT_ID UNIQUE (METADATA_KEY, TENANT_ID) CONSTRAINT METADATA_KEY_TENANT_ID UNIQUE (METADATA_KEY, TENANT_ID)

@ -656,7 +656,7 @@ CREATE TABLE IF NOT EXISTS DM_METADATA (
METADATA_ID INTEGER NOT NULL AUTO_INCREMENT, METADATA_ID INTEGER NOT NULL AUTO_INCREMENT,
DATA_TYPE VARCHAR(16) NOT NULL, DATA_TYPE VARCHAR(16) NOT NULL,
METADATA_KEY VARCHAR(128) NOT NULL, METADATA_KEY VARCHAR(128) NOT NULL,
METADATA_VALUE VARCHAR(8000) NOT NULL, METADATA_VALUE VARCHAR(65535) NOT NULL,
TENANT_ID INTEGER NOT NULL, TENANT_ID INTEGER NOT NULL,
PRIMARY KEY (METADATA_ID), PRIMARY KEY (METADATA_ID),
UNIQUE KEY METADATA_KEY_TENANT_ID (METADATA_KEY,TENANT_ID) UNIQUE KEY METADATA_KEY_TENANT_ID (METADATA_KEY,TENANT_ID)

Loading…
Cancel
Save