Search in sources :

Example 11 with User

use of com.thinkbiganalytics.metadata.api.user.User in project kylo by Teradata.

the class CreateDefaultUsersGroupsAction method upgradeTo.

/* (non-Javadoc)
     * @see com.thinkbiganalytics.metadata.upgrade.UpgradeState#upgradeFrom(com.thinkbiganalytics.metadata.api.app.KyloVersion)
     */
@Override
public void upgradeTo(KyloVersion startingVersion) {
    log.info("Creating default users/groups for version: " + startingVersion);
    User dladmin = createDefaultUser("dladmin", "Data Lake Administrator", null);
    User analyst = createDefaultUser("analyst", "Analyst", null);
    User designer = createDefaultUser("designer", "Designer", null);
    User operator = createDefaultUser("operator", "Operator", null);
    // Create default groups if they don't exist.
    UserGroup adminsGroup = createDefaultGroup("admin", "Administrators");
    UserGroup opsGroup = createDefaultGroup("operations", "Operations");
    UserGroup designersGroup = createDefaultGroup("designers", "Designers");
    UserGroup analystsGroup = createDefaultGroup("analysts", "Analysts");
    UserGroup usersGroup = createDefaultGroup("user", "Users");
    // Add default users to their respective groups
    adminsGroup.addUser(dladmin);
    designersGroup.addUser(designer);
    analystsGroup.addUser(analyst);
    opsGroup.addUser(operator);
    usersGroup.addUser(dladmin);
    usersGroup.addUser(analyst);
    usersGroup.addUser(designer);
    usersGroup.addUser(operator);
    // Setup initial group access control.  Administrators group already has all rights.
    actionsProvider.getAllowedActions(AllowedActions.SERVICES).ifPresent((allowed) -> {
        allowed.enable(opsGroup.getRootPrincial(), OperationsAccessControl.ADMIN_OPS, FeedServicesAccessControl.ACCESS_CATEGORIES, FeedServicesAccessControl.ACCESS_FEEDS, FeedServicesAccessControl.ACCESS_TEMPLATES, FeedServicesAccessControl.ACCESS_TABLES, FeedServicesAccessControl.ACCESS_SERVICE_LEVEL_AGREEMENTS);
        allowed.enable(designersGroup.getRootPrincial(), OperationsAccessControl.ACCESS_OPS, FeedServicesAccessControl.EDIT_FEEDS, FeedServicesAccessControl.ACCESS_TABLES, FeedServicesAccessControl.IMPORT_FEEDS, FeedServicesAccessControl.EXPORT_FEEDS, FeedServicesAccessControl.EDIT_CATEGORIES, FeedServicesAccessControl.EDIT_DATASOURCES, FeedServicesAccessControl.EDIT_TEMPLATES, FeedServicesAccessControl.IMPORT_TEMPLATES, FeedServicesAccessControl.EXPORT_TEMPLATES, FeedServicesAccessControl.ADMIN_TEMPLATES, FeedServicesAccessControl.ACCESS_SERVICE_LEVEL_AGREEMENTS, FeedServicesAccessControl.EDIT_SERVICE_LEVEL_AGREEMENTS, FeedServicesAccessControl.ACCESS_GLOBAL_SEARCH);
        allowed.enable(analystsGroup.getRootPrincial(), OperationsAccessControl.ACCESS_OPS, FeedServicesAccessControl.EDIT_FEEDS, FeedServicesAccessControl.ACCESS_TABLES, FeedServicesAccessControl.IMPORT_FEEDS, FeedServicesAccessControl.EXPORT_FEEDS, FeedServicesAccessControl.EDIT_CATEGORIES, FeedServicesAccessControl.ACCESS_TEMPLATES, FeedServicesAccessControl.ACCESS_DATASOURCES, FeedServicesAccessControl.ACCESS_SERVICE_LEVEL_AGREEMENTS, FeedServicesAccessControl.EDIT_SERVICE_LEVEL_AGREEMENTS, FeedServicesAccessControl.ACCESS_GLOBAL_SEARCH);
    });
    try {
        Workspace workspace = (Workspace) JcrMetadataAccess.getActiveSession().getWorkspace();
        workspace.reindex("/users");
        workspace.reindex("/groups");
    } catch (RepositoryException e) {
        log.error("Failed to re-index metadata", e);
        throw new UpgradeException("Failed to re-index metadata", e);
    }
}
Also used : UpgradeException(com.thinkbiganalytics.server.upgrade.UpgradeException) User(com.thinkbiganalytics.metadata.api.user.User) RepositoryException(javax.jcr.RepositoryException) UserGroup(com.thinkbiganalytics.metadata.api.user.UserGroup) Workspace(org.modeshape.jcr.api.Workspace)

Aggregations

User (com.thinkbiganalytics.metadata.api.user.User)11 Test (org.testng.annotations.Test)7 UserGroup (com.thinkbiganalytics.metadata.api.user.UserGroup)4 GroupPrincipal (com.thinkbiganalytics.security.GroupPrincipal)3 UsernamePrincipal (com.thinkbiganalytics.security.UsernamePrincipal)3 MetadataAccess (com.thinkbiganalytics.metadata.api.MetadataAccess)2 UserProvider (com.thinkbiganalytics.metadata.api.user.UserProvider)2 JcrMetadataAccess (com.thinkbiganalytics.metadata.modeshape.JcrMetadataAccess)2 JcrTestConfig (com.thinkbiganalytics.metadata.modeshape.JcrTestConfig)2 ModeShapeEngineConfig (com.thinkbiganalytics.metadata.modeshape.ModeShapeEngineConfig)2 List (java.util.List)2 Optional (java.util.Optional)2 Collectors (java.util.stream.Collectors)2 StreamSupport (java.util.stream.StreamSupport)2 Inject (javax.inject.Inject)2 Assertions.assertThat (org.assertj.core.api.Assertions.assertThat)2 SpringApplicationConfiguration (org.springframework.boot.test.SpringApplicationConfiguration)2 AbstractTestNGSpringContextTests (org.springframework.test.context.testng.AbstractTestNGSpringContextTests)2 UpgradeException (com.thinkbiganalytics.server.upgrade.UpgradeException)1 RepositoryException (javax.jcr.RepositoryException)1