Example #1
0
var assertDeleteGlobalAdmin = module.exports.assertDeleteGlobalAdmin = function(client, id, callback) {
    // Get a global admin client for a global admin that we never delete. That way we can use it
    // to perform post-delete assertions on data
    TestsUtil.getGlobalAdminRestClient(function(globalAdminClient) {

        // Get the global admin user we're about to delete
        assertGetGlobalAdmin(client, id, function(globalAdmin) {

            // Delete the global admin
            client.admin.deleteGlobalAdmin(id, function(err) {
                assert.ok(!err);

                // Ensure the global admin no longer exists
                assertGetAllGlobalAdmins(globalAdminClient, null, function(globalAdmins) {
                    assertGlobalAdmin(_.findWhere(globalAdmins, {'id': id}), {'exists': false});

                    // Ensure we can no longer authenticate as this global admin
                    TestsUtil.getAnonymousGlobalAdminRestClient(function(anonymousClient) {
                        return AuthTestsUtil.assertLoginFails(anonymousClient, globalAdmin.username, globalAdmin.password, callback);
                    });
                });
            });
        });
    });
};
Example #2
0
            TestsUtil.generateTestTenant(1, function(tenant, app) {

                // Disable local account creation
                TestsUtil.getGlobalAdminRestClient(function(globalAdminClient) {
                    var update = {'allowLocalAccountCreation': false};
                    ConfigTestsUtil.assertUpdateConfig(globalAdminClient, app.id, update, function() {

                        // Assert we can't create a local account
                        TestsUtil.getAnonymousAppUserClient(app, function(anonymousClient) {
                            var email = TestsUtil.generateTestEmailAddress();
                            UsersTestsUtil.assertCreateUserFails(anonymousClient, 'displayName', email, 'password', {'emailPreference': 'immediate'}, 401, function() {

                                // Enable local acount creation
                                var update = {'allowLocalAccountCreation': true};
                                ConfigTestsUtil.assertUpdateConfig(globalAdminClient, app.id, update, function() {

                                    // Assert we can now create a local account
                                    UsersTestsUtil.assertCreateUser(anonymousClient, 'displayName', email, 'password', {'emailPreference': 'immediate'}, function() {
                                        return callback();
                                    });
                                });
                            });
                        });
                    });
                });
            });
Example #3
0
            TestsUtil.generateTestTenant(2, function(tenant, app1, app2) {

                // Enable local account creation
                TestsUtil.getGlobalAdminRestClient(function(globalAdminClient) {
                    var update = {'allowLocalAccountCreation': true};
                    ConfigTestsUtil.assertUpdateConfig(globalAdminClient, app1.id, update, function() {
                        ConfigTestsUtil.assertUpdateConfig(globalAdminClient, app2.id, update, function() {

                            TestsUtil.getAnonymousAppUserClient(app1, function(app1Client) {
                                TestsUtil.getAnonymousAppUserClient(app2, function(app2Client) {

                                    // Create a user on app 1
                                    var email = TestsUtil.generateTestEmailAddress();
                                    UsersTestsUtil.assertCreateUser(app1Client, 'displayName', email, 'password', {'emailPreference': 'immediate'}, function(user) {

                                        // We can't create another user with the same email address
                                        UsersTestsUtil.assertCreateUserFails(app1Client, 'displayName', email, 'password', {'emailPreference': 'immediate'}, 400, function(user) {

                                            // We can create a user on another application with the same email address
                                            UsersTestsUtil.assertCreateUser(app2Client, 'displayName', email, 'password', {'emailPreference': 'immediate'}, function(user) {
                                                return callback();
                                            });
                                        });
                                    });
                                });
                            });
                        });
                    });
                });
            });
 TestsUtil.getAnonymousGlobalAdminRestClient(function(_anonymousGlobalAdminClient) {
     anonymousGlobalAdminClient = _anonymousGlobalAdminClient;
     TestsUtil.getGlobalAdminRestClient(function(_globalAdminClient) {
         globalAdminClient = _globalAdminClient;
         return callback();
     });
 });
Example #5
0
                                            UsersTestsUtil.assertUpdateAdminStatus(global.tests.admins.cam2014.client, simon.profile.id, true, function() {

                                                // Global admins can update users
                                                TestsUtil.getGlobalAdminRestClient(function(globalAdminClient) {
                                                    UsersTestsUtil.assertUpdateAdminStatus(globalAdminClient, nico.profile.id, true, function() {
                                                        return callback();
                                                    });
                                                });
                                            });
Example #6
0
                        UsersTestsUtil.assertGetUserFails(global.tests.admins.cam2014.client, oxUser.profile.id, 401, function() {

                            // Users from other applications can be retrieved by global admins
                            TestsUtil.getGlobalAdminRestClient(function(globalAdminClient) {
                                UsersTestsUtil.assertGetUser(globalAdminClient, oxUser.profile.id, function() {
                                    return callback();
                                });
                            });
                        });
Example #7
0
                        UsersTestsUtil.assertGetUser(global.tests.admins.cam2014.client, simon.profile.id, function(user) {
                            UsersTestsUtil.assertUser(user, {'expectedUser': simon.profile, 'canViewPrivateFields': true});

                            // A global admin can see Simon's personal information
                            TestsUtil.getGlobalAdminRestClient(function(globalAdminClient) {
                                UsersTestsUtil.assertGetUser(globalAdminClient, simon.profile.id, function(user) {
                                    UsersTestsUtil.assertUser(user, {'expectedUser': simon.profile, 'canViewPrivateFields': true});
                                    return callback();
                                });
                            });
                        });
                                        AdminsTestsUtil.assertChangePasswordFails(global.tests.admins.oxford2013.client, createdGlobalAdmin.id, newPassword, globalAdminClient.options.password, 404, function() {

                                            TestsUtil.getGlobalAdminRestClient(function(globalAdminClient) {
                                                // Incorrect password of the global administrator making the change
                                                AdminsTestsUtil.assertChangePasswordFails(globalAdminClient, createdGlobalAdmin.id, newPassword, 'wrong password', 401, function() {
                                                    AdminsTestsUtil.assertChangePassword(globalAdminClient, createdGlobalAdmin.id, newPassword, globalAdminClient.options.password, function() {
                                                        return callback();
                                                    });
                                                });
                                            });
                                        });
Example #9
0
                                    UsersTestsUtil.assertCreateUserFails(global.tests.admins.cam2014.client, 'displayName', email, 'password', {'emailPreference': 'uwotm8'}, 400, function() {

                                        // Invalid application id
                                        TestsUtil.getGlobalAdminRestClient(function(globalAdminClient) {
                                            UsersTestsUtil.assertCreateUserFails(globalAdminClient, 'displayName', email, 'password', {'emailPreference': 'immediate', 'app': 'Not a number'}, 400, function() {
                                                UsersTestsUtil.assertCreateUserFails(globalAdminClient, 'displayName', email, 'password', {'emailPreference': 'immediate', 'app': -1}, 404, function() {
                                                    UsersTestsUtil.assertCreateUserFails(globalAdminClient, 'displayName', email, 'password', {'emailPreference': 'immediate', 'app': 1231231}, 404, function() {
                                                        return callback();
                                                    });
                                                });
                                            });
                                        });
                                    });
Example #10
0
            TestsUtil.generateTestTenant(1, function(tenant, app) {

                // Enable local account creation
                TestsUtil.getGlobalAdminRestClient(function(globalAdminClient) {
                    var update = {'allowLocalAccountCreation': true};
                    ConfigTestsUtil.assertUpdateConfig(globalAdminClient, app.id, update, function() {

                        var email = TestsUtil.generateTestEmailAddress();

                        // Anonymous users can't create admin accounts
                        TestsUtil.getAnonymousAppUserClient(app, function(anonymousClient) {
                            UsersTestsUtil.assertCreateUserFails(anonymousClient, 'displayName', email, 'password', {'emailPreference': 'immediate', 'isAdmin': true}, 401, function() {
                                TestsUtil.getAnonymousGlobalAdminRestClient(function(anonymousGlobalClient) {
                                    UsersTestsUtil.assertCreateUserFails(anonymousGlobalClient, 'displayName', email, 'password', {'emailPreference': 'immediate', 'isAdmin': true, 'app': app.id}, 401, function() {

                                        // Regular users can't create accounts
                                        TestsUtil.generateTestUsers(app, 1, false, function(simon) {
                                            UsersTestsUtil.assertCreateUserFails(simon.client, 'displayName', email, 'password', {'emailPreference': 'immediate', 'isAdmin': true}, 401, function() {

                                                // The global admin can create an admin account
                                                UsersTestsUtil.assertCreateUser(globalAdminClient, 'displayName', email, 'password', {'emailPreference': 'immediate', 'isAdmin': true, 'app': app.id}, function(adminUser) {

                                                    // Application admins can create an admin account
                                                    // Create a REST client for the created user
                                                    var options = {
                                                        'host': TestsUtil.getAppListenUri(),
                                                        'hostHeader': app.host,
                                                        'authenticationStrategy': 'local',
                                                        'username': email,
                                                        'password': '******'
                                                    };

                                                    RestAPI.createClient(options, function(err, client) {
                                                        assert.ok(!err);
                                                        var email2 = TestsUtil.generateTestEmailAddress();
                                                        UsersTestsUtil.assertCreateUser(client, 'displayName', email2, 'password', {'emailPreference': 'immediate', 'isAdmin': true}, function(adminUser) {
                                                            return callback();
                                                        });
                                                    });
                                                });
                                            });
                                        });
                                    });
                                });
                            });
                        });
                    });
                });
            });