@Override public void onCreation( Application application, String userName, String tenantDomain, boolean isUploadableAppType) throws AppFactoryException { // authorize application specific unique role in all cloud environments. log.info( "EnvironmentAuthorizationListener was called for application:" + application.getId() + " creation event."); String applicationRoleName = AppFactoryUtil.getRoleNameForApplication(application.getId()); Permission perAppRolePermission = new Permission( AppFactoryConstants.PER_APP_ROLE_PERMISSION, CarbonConstants.UI_PERMISSION_ACTION); authorizeRole(applicationRoleName, userName, new Permission[] {perAppRolePermission}); try { // String infoMessageTitle = "Application " + application.getName() + " is successfully authorized for all " + "Cloud environments"; EventNotifier.getInstance() .notify( AppCreationEventBuilderUtil.buildApplicationCreationEvent( infoMessageTitle, "", Event.Category.INFO)); // EventNotifier.getInstance().notify(EventBuilderUtil.buildApplicationCreationEvent(application.getId(), infoMessage, infoMessage, Event.Category.INFO)); } catch (AppFactoryEventException e) { log.error("Failed to notify Cloud environment authorization events", e); // do not throw again. } }
@Override public boolean hasExecuted(Application application, String userName, String tenantDomain) throws AppFactoryException { String applicationRoleName = AppFactoryUtil.getRoleNameForApplication(application.getId()); Permission perAppRolePermission = new Permission( AppFactoryConstants.PER_APP_ROLE_PERMISSION, CarbonConstants.UI_PERMISSION_ACTION); return isRoleAuthorized(applicationRoleName, userName, new Permission[] {perAppRolePermission}); }
@Override public void onDeletion(Application application, String userName, String tenantDomain) throws AppFactoryException { String applicationRoleName = AppFactoryUtil.getRoleNameForApplication(application.getId()); clearRoleAuthorization(applicationRoleName, userName); }