Skip to content

Commit e0978a6

Browse files
committed
[KNOWAGE-9591] add FunctionCatalogManagement authorization
1 parent acf3fde commit e0978a6

7 files changed

Lines changed: 32 additions & 0 deletions

File tree

knowage-core/src/main/java/it/eng/spagobi/api/v2/RolesResource.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -376,6 +376,7 @@ public Role roleBoToRole(RoleBO bo) {
376376
role.setAbleToCreateSelfServiceGeoreport(bo.isAbleToCreateSelfServiceGeoreport());
377377
role.setAbleToCreateSelfServiceKpi(bo.isAbleToCreateSelfServiceKpi());
378378
role.setAbleToUseFunctionsCatalog(bo.isAbleToUseFunctionsCatalog());
379+
role.setAbleToManageFunctionsCatalog(bo.isAbleToManageFunctionsCatalog());
379380
role.setAbleToEditPythonScripts(bo.isAbleToEditPythonScripts());
380381
role.setAbleToCreateCustomChart(bo.isAbleToCreateCustomChart());
381382
role.setAbleToSaveSubobjects(bo.isAbleToSaveSubobjects());

knowage/src/main/resources/it/eng/spagobi/commons/initializers/metadata/config/internal_profiling.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@
8787
<AUTHORIZATION productType="KnowageSI" authorizationName="ENABLE_DOSSIER" organization="DEFAULT_TENANT" />
8888
<AUTHORIZATION productType="KnowageSI" authorizationName="MANAGE_CALENDAR" organization="DEFAULT_TENANT" />
8989
<AUTHORIZATION productType="KnowageSI" authorizationName="FUNCTIONS_CATALOG_USAGE" organization="DEFAULT_TENANT" />
90+
<AUTHORIZATION productType="KnowageSI" authorizationName="FUNCTIONS_CATALOG_MANAGEMENT" organization="DEFAULT_TENANT" />
9091
</DEFAULT_AUTHORIZATIONS>
9192

9293
<DEFAULT_AUTHORIZATIONS_ROLES>
@@ -118,6 +119,7 @@
118119
<AUTHORIZATION_ROLES authorizationName="SEE_MY_WORKSPACE" roleName="user" organization="DEFAULT_TENANT"/>
119120
<AUTHORIZATION_ROLES authorizationName="CREATE_DOCUMENTS" roleName="user" organization="DEFAULT_TENANT"/>
120121
<AUTHORIZATION_ROLES authorizationName="CREATE_SELF_SERVICE_COCKPIT" roleName="user" organization="DEFAULT_TENANT"/>
122+
121123
</DEFAULT_AUTHORIZATIONS_ROLES>
122124

123125
<EXT_ROLES_CATEGORIES>

knowage/src/main/webapp/WEB-INF/conf/config/internal_profiling.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,7 @@
8787
<AUTHORIZATION productType="KnowageSI" authorizationName="ENABLE_DOSSIER" organization="DEFAULT_TENANT" />
8888
<AUTHORIZATION productType="KnowageSI" authorizationName="MANAGE_CALENDAR" organization="DEFAULT_TENANT" />
8989
<AUTHORIZATION productType="KnowageSI" authorizationName="FUNCTIONS_CATALOG_USAGE" organization="DEFAULT_TENANT" />
90+
<AUTHORIZATION productType="KnowageSI" authorizationName="FUNCTIONS_CATALOG_MANAGEMENT" organization="DEFAULT_TENANT" />
9091
</DEFAULT_AUTHORIZATIONS>
9192

9293
<DEFAULT_AUTHORIZATIONS_ROLES>

knowagedao/src/main/java/it/eng/spagobi/commons/dao/RoleDAOHibImpl.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -682,6 +682,7 @@ private boolean isAbleTo(Role aRole, SbiAuthorizations authI) {
682682
|| (authI.getName().equals("MANAGE_GLOSSARY_TECHNICAL") && aRole.getAbleToManageGlossaryTechnical())
683683
|| (authI.getName().equals("MANAGE_CALENDAR") && aRole.getAbleToManageCalendar())
684684
|| (authI.getName().equals("FUNCTIONS_CATALOG_USAGE") && aRole.getAbleToUseFunctionsCatalog())
685+
|| (authI.getName().equals("FUNCTIONS_CATALOG_MANAGEMENT") && aRole.getAbleToManageFunctionsCatalog())
685686
|| (authI.getName().equals("MANAGE_INTERNATIONALIZATION")
686687
&& aRole.getAbleToManageInternationalization())
687688
|| (authI.getName().equals("CREATE_SELF_SERVICE_COCKPIT") && aRole.getAbleToCreateSelfServiceCockpit())

knowagedao/src/main/java/it/eng/spagobi/commons/utilities/UserUtilities.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -764,6 +764,9 @@ public static List<String> readFunctionalityByRole(SpagoBIUserProfile user) {
764764
if (virtualRole.getAbleToUseFunctionsCatalog()) {
765765
roleFunctionalities.add(CommunityFunctionalityConstants.FUNCTIONS_CATALOG_USAGE);
766766
}
767+
if (virtualRole.getAbleToManageFunctionsCatalog()) {
768+
roleFunctionalities.add(CommunityFunctionalityConstants.FUNCTIONS_CATALOG_MANAGEMENT);
769+
}
767770
if (virtualRole.getAbleToManageInternationalization()) {
768771
roleFunctionalities.add(CommunityFunctionalityConstants.MANAGE_INTERNATIONALIZATION);
769772
}
@@ -1054,6 +1057,14 @@ private static Role getVirtualRole(String[] roles, String organization) throws E
10541057
LOGGER.debug("User has role " + roleName + " that is able to use functions catalog.");
10551058
virtualRole.setAbleToUseFunctionsCatalog(true);
10561059
}
1060+
if (anotherRole.getAbleToManageFunctionsCatalog()) {
1061+
LOGGER.debug("User has role " + roleName + " that is able to manage functions catalog.");
1062+
virtualRole.setAbleToManageFunctionsCatalog(true);
1063+
}
1064+
if (anotherRole.getAbleToManageFunctionsCatalog()) {
1065+
LOGGER.debug("User has role " + roleName + " that is able to manage functions catalog.");
1066+
virtualRole.setAbleToManageFunctionsCatalog(true);
1067+
}
10571068
if (anotherRole.getAbleToManageInternationalization()) {
10581069
LOGGER.debug("User has role " + roleName + " that is able to manage Internationalization.");
10591070
virtualRole.setAbleToManageInternationalization(true);

knowageutils/src/main/java/it/eng/spagobi/commons/bo/Role.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -898,4 +898,11 @@ public void setRoleMenu(List<String> roleMenu) {
898898
}
899899

900900

901+
public boolean getAbleToManageFunctionsCatalog() {
902+
return isAbleToUseFunctionsCatalog;
903+
}
904+
905+
public void setAbleToManageFunctionsCatalog(boolean b) {
906+
this.isAbleToUseFunctionsCatalog = b;
907+
}
901908
}

knowageutils/src/main/java/it/eng/spagobi/commons/bo/RoleBO.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ public class RoleBO implements Serializable {
115115

116116
private boolean ableToManageCalendar;
117117
private boolean ableToUseFunctionsCatalog;
118+
private boolean ableToManageFunctionsCatalog;
118119

119120
private boolean isAbleToManageInternationalization;
120121

@@ -606,6 +607,14 @@ public void setAbleToUseFunctionsCatalog(boolean ableToUseFunctionsCatalog) {
606607
this.ableToUseFunctionsCatalog = ableToUseFunctionsCatalog;
607608
}
608609

610+
public boolean isAbleToManageFunctionsCatalog() {
611+
return ableToManageFunctionsCatalog;
612+
}
613+
614+
public void setAbleToManageFunctionsCatalog(boolean ableToManageFunctionsCatalog) {
615+
this.ableToManageFunctionsCatalog = ableToManageFunctionsCatalog;
616+
}
617+
609618
public boolean isAbleToManageInternationalization() {
610619
return isAbleToManageInternationalization;
611620
}

0 commit comments

Comments
 (0)