This app is for bulk assigning user permissions, bulk removing user permissions and assigning team memberships.
This app has 2 types of filters: 1. The standard advanced filter and a user list filter.
The standard advanced filters are available for users in the grid.
The advanced filter also includes a "Has Permissions in Project" Quick Filter that allows filtering all users that exist in the selected project:
An additional User List Filter. A delimited string of usernames can be pasted into this filter to filter out all users whose usernames match the ones in the list. Delimiters can be commas, tabs or line feeds. Up to 24,000 characters can be pasted into this text box.
View permissions in the current workspace for any user by clicking the gear menu and select view permissions.
Assign or Remove permissions or Add Team Memberships in bulk by selecting the checkbox for 1 to many users and choosing the action.
Permissions can only be assigned to projects within the workspace that the app is installed for.
This app will only run for Project Administrators in the current workspace, Workspace Administrators in the current workspace, and Subscription Administrators.
If a user is a Project Administrator, they will only be able to see other users' permissions for the projects that they are administrators of.
Permissions can only be updated for users who are not Workspace or Subscription administrators. The bulk options will not be available if users who are Workspace or Subscription administrators are selected. To prevent this, filter on only users who are Workspace Users (not Administrators).
Filters that use "=" are case sensitive. If you want to do a non-case sensitive search on a text field, use the "contains" operator instead.
The username list will convert all usernames pasted in that box to lowercase since Rally saves usernames in lower case.
If a user is disabled, permissions or team membership will not be assigned to the user. Permissions will be removed from the user, however.
2017-03-06 Added status updates during permission assignment/removal Updated code so that permissions can be removed from disabled users Made username list filter all lowercase
2017-02-07
Fix bug in "Has Permissions in Project" filter where all permissions were not being retrieved.
Reduced page sizes to 200 or less.
2017-02-03 Improve performance of "Has Permissions in Project" filter Expand Assign/Remove Permissions grid to full window
2017-01-20 Added checkbox to downgrade existing project permissions (if less than what user currently has and user is not workspace or subscription administrator) Minor UI updates
2017-01-11 Minor UI updates Fixed issue updating hierarchy of Team Membership Fixed concurrency issue
BulkUserUtilityApp is released under the MIT license. See the file LICENSE for the full text.
You can find the documentation on our help site.
If you've just downloaded this from github and you want to do development, you're going to need to have these installed:
- node.js
- grunt-cli
- grunt-init
Since you're getting this from github, we assume you have the command line version of git also installed. If not, go get git.
If you have those three installed, just type this in the root directory here to get set up to develop:
npm install
- src/javascript: All the JS files saved here will be compiled into the target html file
- src/style: All of the stylesheets saved here will be compiled into the target html file
- test/fast: Fast jasmine tests go here. There should also be a helper file that is loaded first for creating mocks and doing other shortcuts (fastHelper.js) Tests should be in a file named -spec.js
- test/slow: Slow jasmine tests go here. There should also be a helper file that is loaded first for creating mocks and doing other shortcuts (slowHelper.js) Tests should be in a file named -spec.js
- templates: This is where templates that are used to create the production and debug html files live. The advantage of using these templates is that you can configure the behavior of the html around the JS.
- config.json: This file contains the configuration settings necessary to create the debug and production html files.
- package.json: This file lists the dependencies for grunt
- auth.json: This file should NOT be checked in. Create this to create a debug version of the app, to run the slow test specs and/or to use grunt to install the app in your test environment. It should look like: { "username":"[email protected]", "password":"secret", "server": "https://rally1.rallydev.com" }
####Tasks
Use grunt debug to create the debug html file. You only need to run this when you have added new files to the src directories.
Use grunt build to create the production html file. We still have to copy the html file to a panel to test.
Use grunt test-fast to run the Jasmine tests in the fast directory. Typically, the tests in the fast directory are more pure unit tests and do not need to connect to Rally.
Use grunt test-slow to run the Jasmine tests in the slow directory. Typically, the tests in the slow directory are more like integration tests in that they require connecting to Rally and interacting with data.
Use grunt deploy to build the deploy file and then install it into a new page/app in Rally. It will create the page on the Home tab and then add a custom html app to the page. The page will be named using the "name" key in the config.json file (with an asterisk prepended).
To use this task, you must create an auth.json file that contains the following keys: { "username": "[email protected]", "password": "fredfredfred", "server": "https://us1.rallydev.com" }
(Use your username and password, of course.) NOTE: not sure why yet, but this task does not work against the demo environments. Also, .gitignore is configured so that this file does not get committed. Do not commit this file with a password in it!
When the first install is complete, the script will add the ObjectIDs of the page and panel to the auth.json file, so that it looks like this:
{ "username": "[email protected]", "password": "fredfredfred", "server": "https://us1.rallydev.com", "pageOid": "52339218186", "panelOid": 52339218188 }
On subsequent installs, the script will write to this same page/app. Remove the pageOid and panelOid lines to install in a new place. CAUTION: Currently, error checking is not enabled, so it will fail silently.
Run this to watch files (js and css). When a file is saved, the task will automatically build and deploy as shown in the deploy section above.