How to: Assign Project Rights

Visual SourceSafe imposes project security by allowing you to assign project rights for individual commands for each user. Three rights commands are enabled on the Tools menu of Visual SourceSafe Administrator. You can choose a user in the user list for the database and assign rights using the Rights Assignments for User command. Alternatively, you can use the Rights by Project command to assign project rights. It is also possible to copy project rights from one user to another, using the Copy User Rights command. To use any of these commands, you must enable rights assignments using the SourceSafe Options dialog box from Visual SourceSafe Administrator.

There are four project rights, as described in the following table. Each right includes all the rights that precede it, for example, the Check Out/Check In right includes the Read right.

  • Read (R)
    Specifies that a user can view, but not change, files.
  • Check Out/Check In (C)
    Specifies that a user can modify files using commands such as Check Out, Check In, and Undo Check Out.
  • Add/Rename/Delete (A)
    Specifies that a user can modify the file list in Visual SourceSafe Explorer using commands such as Delete, Label, and Rename. Some companies give all users this right, while others reserve it for manager-level users.
  • Destroy (D)
    Specifies that a user can perform intrusive operations on files using commands such as Purge and Rollback. This project right is generally reserved for the database administrator and/or a manager-level user.

Each Visual SourceSafe command has certain project rights associated with it. For example, the Label command requires the Add/Rename/Delete right. When you set a user's rights for a particular project, you create an assignment in the Visual SourceSafe database. The rights assignment you give to the root project ($/) applies ("propagates") to all subprojects until Visual SourceSafe encounters another explicit project rights assignment. Therefore, a user's assigned right in the root project becomes the default.

Let's look at an example of project rights propagation in Visual SourceSafe. Suppose you assign the Add/Rename/Delete project right to user Maria in the root project ($/). In the $/Samples project, you give her no explicit assignment; so she automatically has the same right as she has in the parent project.

In $/Samples/BusinessObject, you provide a new assignment for Maria, giving her the Read right. This action changes the propagation of rights, and Maria now has the Read right in $/Samples/BusinessObject and any subprojects.

In project $/NorWind, you give Maria no specific assignment. Thus her right from the root project propagates to $/NorWind, and she has the Add/Rename/Delete right in $/NorWind and all its subprojects.

Enabling Project Rights Commands

To enable project rights commands:

  1. Open Visual SourceSafe Administrator.

  2. On the Tools menu, click Options, then click the Project Rights tab.

  3. In the SourceSafe Options dialog box, select the Enable Rights and Assignments commands check box.

  4. In the New User Rights area of the dialog box, you can deselect any project rights that do not apply to any database users on your team.

  5. Click OK when finished setting project rights options.

  6. Check the Tools menu to verify that the Rights Assignments for User, Rights by Project, and Copy User Rights commands are active.

Assigning Project Rights from the User List

To assign project rights from the user list:

  1. In Visual SourceSafe Administrator, select a user in the user list for the database, click Tools, and then click Rights Assignments for User.

  2. In the Assignments for <name> dialog box, click Add Assignment and select a Visual SourceSafe project. Note that you can select the root node of the database ($/) if you want to assign rights for the entire database.

  3. Under User rights, specify the types of commands the user can perform for the selected project, and then click OK to accept your choices.

Note

A user must have the Destroy project right to deploy a Web site.

  1. Repeat these rights assignment steps for all users in the user list for the database.

Assigning Project Rights from the Project List

To assign project rights from the project list:

  1. In Visual SourceSafe Administrator, select a user in the user list for the database, click Tools, and then click Rights by Project.

  2. In the Project Rights dialog box, select a project and click Add User to attach the user for whom to assign project rights. Note that you can select the root node of the database ($/) if you want to assign rights for the entire database.

  3. Under User rights, specify the types of commands the user can perform for the selected project, and then click OK to accept your choices.

Note

A user must have the Destroy project right to deploy a Web site.

  1. Repeat these rights assignment steps for all users in the user list for the database.

Copying One User's Rights to Another User

To copy one user's rights to another user:

  1. In Visual SourceSafe Administrator, access the user list and click the user whose project rights you want to modify.

  2. On the Tools menu, click Copy User Rights. The Copy Rights Assignments to <name> dialog box is displayed, providing a list of all database users.

  3. Select a user from whom to copy rights, and then click Copy.

  4. Check the rights for the recipient to ensure that the other user's rights have been copied correctly. The two users should have identical rights in every project. You can, however, change their rights in individual projects. Future changes to one user are not duplicated for the other unless you copy the rights again.

See Also

Reference

Assignments for <name> Dialog Box (Administrator)
Copy Rights Assignments to <name> Dialog Box (Administrator)
Project Rights Dialog Box (Administrator)
SourceSafe Options Dialog Box, Project Rights Tab (Administrator)

Concepts

Securing a Database