diff --git a/openstack_dashboard/dashboards/identity/static/dashboard/identity/users/actions/create.action.service.js b/openstack_dashboard/dashboards/identity/static/dashboard/identity/users/actions/create.action.service.js index a6c1077504..d42ff6d830 100644 --- a/openstack_dashboard/dashboards/identity/static/dashboard/identity/users/actions/create.action.service.js +++ b/openstack_dashboard/dashboards/identity/static/dashboard/identity/users/actions/create.action.service.js @@ -76,14 +76,16 @@ function submit(context) { return keystone.createUser(context.model).then(success); - } - function success(response) { - var user = response.data; - toast.add('success', interpolate(message.success, [user.name])); - return actionResultService.getActionResult() - .created(resourceType, user.id) - .result; + function success(response) { + var user = response.data; + toast.add('success', interpolate(message.success, [user.name])); + // Assign project role for the new user. + keystone.grantRole(user.default_project_id, context.model.role, user.id); + return actionResultService.getActionResult() + .created(resourceType, user.id) + .result; + } } } })(); diff --git a/openstack_dashboard/dashboards/identity/static/dashboard/identity/users/actions/create.action.service.spec.js b/openstack_dashboard/dashboards/identity/static/dashboard/identity/users/actions/create.action.service.spec.js index 78392ef9c9..dfe07f6dbd 100644 --- a/openstack_dashboard/dashboards/identity/static/dashboard/identity/users/actions/create.action.service.spec.js +++ b/openstack_dashboard/dashboards/identity/static/dashboard/identity/users/actions/create.action.service.spec.js @@ -92,6 +92,7 @@ var deferred = $q.defer(); spyOn(keystone, 'createUser').and.returnValue(deferred.promise); spyOn(toast, 'add').and.callFake(angular.noop); + spyOn(keystone, 'grantRole'); var handler = jasmine.createSpyObj('handler', ['success']); deferred.resolve({data: {name: 'saved', id: '12345'}});