Groups

Top  Previous  Next
Group Administration

User "Groups" is an optional feature that allows you to define groups of users within your organization, so reviews can be associated with a group. Groups can be used to model your organization's hierarchy and/or project assignments. Each group can contain multiple users and can also contain other groups. Each user can be in more than one group.

The word "Group" is configurable in the General Settings, so you could change it to "Team," or "Project," etc.

Association With Reviews

If a user is a member of more than one group that can be associated with a review, an additional field is displayed when creating a review:

admin-groups-group-selection

The list of groups to select from is calculated by first creating a list of all groups that contain the review creator as a member. All groups in that list are then checked to see if they are a child group of any other group(s). Parent groups are added to the list recursively.

In the settings for a group there is an option to disallow associating that group with reviews. This is useful for creating groups that are used for reporting or filtering only. Groups that cannot be associated with a review are still shown in the list, but cannot be selected.

Associating a group with a review makes it easier to select participants for that review because the Person list can optionally be filtered by group. The filter is calculated by starting with the users that are members of the selected group. If the selected group also contains child groups, then the users that are members of those child groups will also be added. The search for child groups is done recursively.
Restricting Access

Groups can be used to limit access to reviews by setting Restrict Access to Review Content in the general settings. When the group access restriction feature is used, the list of users who have access to the review is calculated by starting with the users that are members of the group that is associated with the review. If that group also contains child groups, then the users that are members of those child groups will also be added. The search for child groups is done recursively. Finally, if the group associated with the review is a child of any other group(s) then the users that are members of those parent groups will also be added. The search for parent groups is done recursively.

Sample Group Hierarchies

It may be difficult to understand how best to use groups based on the rules given above.  We've provided a few examples of how they are usually used:

Using Groups for Organizational Hierarchy
Using Groups for Projects
Using Groups for Organizational Hierarchy and Projects

Maintaining Groups

Groups can be created and modified in one of two ways: manually (with the web user interface - see the sections below, starting with Creating New Groups, or with the command-line scripting command ccollab admin group create) or automatically via the command-line scripting ccollab admin group sync command.

If you have only a few groups it's easiest to manage them manually.  If you have many groups or if you're mirroring them from an external system like LDAP, it's best to manage them automatically using the "sync" command.

The command-line "sync" command interface is provided to make it easy to mirror group definitions in to Code Collaborator from an external system. The ccollab admin group sync command uses the contents of an XML file (schema) to update Code Collaborator's group definitions.  See the Syncing Groups topic for more information.

Code Collaborator tracks which groups were created manually and which were defined via ccollab admin group sync. Groups that were defined manually are not overwritten as a result of using ccollab admin group sync.  See the Using Groups for Organizational Hierarchy and Projects example to see how this can be useful.

Creating New Groups

admin-groups-detail-create-new

To make use of this feature, first create a title for your group, and click "Create Group."

Group List

admin-groups-detail-group-list

Once a group is created, the group will appear in the Group List.  In the Group List, you can edit the configuration details or delete the group by clicking the appropriate link.  The Group List also shows the number of reviews associated with the group, whether or not the group can be associated with reviews, whether or not the group is enabled, and any descriptions given to the group.

Deleting a Group

To delete a group, click the [Delete] link next to the group's title in the Group List.  You can only delete a group if it is not associated with reviews.  If the group is associated with reviews, you must first associate those reviews with a different group before deleting it; alternatively, you could instead disable the group in order to prevent future reviews from being associated with it.

Editing a Group

To edit a group, click on the [Edit] link next to the group's title in the Group List.  You will be directed to the "Edit Group" page.

admin-groups-detail-edit-group
Title

Human-readable title for the group, used in drop-down menus, etc...  This does not have to be unique across all groups.

Guid

Machine-readable ID for group, unique across all groups.  If the group was created using the web interface, this is generated automatically.  If the group was created using the sync command, this ID is supplied in the XML file.

Description

Human-readable description for the group.  This is displayed on the "New Review" page when associating a group with a review.

Allow associate with Reviews

If this is set to "Yes", this group is selectable from a drop-down list when associating a group with a review.  If "No", this group may still be displayed in the list, but will be disabled. For an example, see Using Groups for Organizational Hierarchy and Projects.

Is Enabled

Groups can be disabled when they are no longer in use.  Disabled groups still show up in reports because reviews may be associated with them.

 

admin-groups-detail-child-groups

You can add multiple groups to be children of the group.  This may be helpful if a group is constituted by a number of sub-groups.  The "group hierarchy" created by Group -> Child Group relationships is important for the associate with review and security algorithms.

 

admin-groups-detail-users

Groups can have specifically named member users, or they can automatically contain all users as members.  Group membership is important for the associate with review and security algorithms.