Search in sources :

Example 1 with UserGroup

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

the class GroupNamesUpgradeAction 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("Upgrading from version: " + startingVersion);
    this.userProvider.findGroupByName("designer").ifPresent(oldGrp -> {
        UserGroup designersGroup = createDefaultGroup("designers", "Designers");
        oldGrp.getUsers().forEach(user -> designersGroup.addUser(user));
        actionsProvider.getAllowedActions(AllowedActions.SERVICES).ifPresent((allowed) -> {
            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);
        });
        this.userProvider.deleteGroup(oldGrp);
    });
    this.userProvider.findGroupByName("analyst").ifPresent(oldGrp -> {
        UserGroup analystsGroup = createDefaultGroup("analysts", "Analysts");
        oldGrp.getUsers().forEach(user -> analystsGroup.addUser(user));
        actionsProvider.getAllowedActions(AllowedActions.SERVICES).ifPresent((allowed) -> {
            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);
        });
        this.userProvider.deleteGroup(oldGrp);
    });
}
Also used : UserGroup(com.thinkbiganalytics.metadata.api.user.UserGroup)

Example 2 with UserGroup

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

the class GroupNamesUpgradeAction 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("Upgrading from version: " + startingVersion);
    this.userProvider.findGroupByName("designer").ifPresent(oldGrp -> {
        UserGroup designersGroup = createDefaultGroup("designers", "Designers");
        oldGrp.getUsers().forEach(user -> designersGroup.addUser(user));
        actionsProvider.getAllowedActions(AllowedActions.SERVICES).ifPresent((allowed) -> {
            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);
        });
        this.userProvider.deleteGroup(oldGrp);
    });
    this.userProvider.findGroupByName("analyst").ifPresent(oldGrp -> {
        UserGroup analystsGroup = createDefaultGroup("analysts", "Analysts");
        oldGrp.getUsers().forEach(user -> analystsGroup.addUser(user));
        actionsProvider.getAllowedActions(AllowedActions.SERVICES).ifPresent((allowed) -> {
            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);
        });
        this.userProvider.deleteGroup(oldGrp);
    });
}
Also used : UserGroup(com.thinkbiganalytics.metadata.api.user.UserGroup)

Example 3 with UserGroup

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

the class GroupNamesUpgradeAction method createDefaultGroup.

protected UserGroup createDefaultGroup(String groupName, String title) {
    UserGroup newGroup = userProvider.ensureGroup(groupName);
    newGroup.setTitle(title);
    return newGroup;
}
Also used : UserGroup(com.thinkbiganalytics.metadata.api.user.UserGroup)

Example 4 with UserGroup

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

the class JcrUserProviderTest method testFindGroupByName.

@Test(dependsOnMethods = "testCreateGroup")
public void testFindGroupByName() {
    metadata.read(() -> {
        Optional<UserGroup> optional = provider.findGroupByName("groupA");
        assertThat(optional.isPresent()).isTrue();
        UserGroup groupA = optional.get();
        assertThat(groupA).extracting(UserGroup::getSystemName).containsExactly("groupA");
    }, MetadataAccess.SERVICE);
}
Also used : UserGroup(com.thinkbiganalytics.metadata.api.user.UserGroup) Test(org.testng.annotations.Test) SpringBootTest(org.springframework.boot.test.context.SpringBootTest)

Example 5 with UserGroup

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

the class JcrUserProviderTest method testAddUsersMembers.

@Test(dependsOnMethods = "testCreateMemberGroups")
public void testAddUsersMembers() {
    metadata.commit(() -> {
        User user1 = this.provider.findUserBySystemName("user1").get();
        User user2 = this.provider.findUserBySystemName("user2").get();
        User user3 = this.provider.findUserBySystemName("user3").get();
        UserGroup groupA = this.provider.findGroupByName("groupA").get();
        UserGroup groupB = this.provider.findGroupByName("groupB").get();
        UserGroup groupD = this.provider.findGroupByName("groupD").get();
        assertThat(groupA.addUser(user1)).isTrue();
        assertThat(groupB.addUser(user2)).isTrue();
        assertThat(groupD.addUser(user3)).isTrue();
    }, MetadataAccess.SERVICE);
}
Also used : User(com.thinkbiganalytics.metadata.api.user.User) UserGroup(com.thinkbiganalytics.metadata.api.user.UserGroup) Test(org.testng.annotations.Test) SpringBootTest(org.springframework.boot.test.context.SpringBootTest)

Aggregations

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