Proprietà IVSSUser.ProjectRights

Ottiene o imposta i diritti dell'utente per un progetto specifico.

Spazio dei nomi: Microsoft.VisualStudio.SourceSafe.Interop
Assembly: Microsoft.VisualStudio.SourceSafe.Interop (in microsoft.visualstudio.sourcesafe.interop.dll)

int ProjectRights [
	[OptionalAttribute] [InAttribute] string Project
] { get; set; }
/** @property */
int get_ProjectRights (/** @attribute InAttribute() */ /** @attribute OptionalAttribute() */ String Project)

/** @property */
void set_ProjectRights (/** @attribute InAttribute() */ /** @attribute OptionalAttribute() */ String Project, /** @attribute InAttribute() */ int piRightsOut)

JScript supporta l'utilizzo di proprietà indicizzate ma non la dichiarazione di nuove.

Parametri

Project

Facoltativo. Una stringa che rappresenta il percorso di un progetto in Visual SourceSafe per il quale vengono ottenuti o impostati i diritti. Il valore predefinito è $/ (il progetto di primo livello).

Valore proprietà

I diritti dell'utente per un progetto specifico.

[IDL]

HRESULT ProjectRights([in, defaultvalue("$/")] BSTR Project, [out, retval] long *piRightsOut);

HRESULT ProjectRights([in, defaultvalue("$/")] BSTR Project, [in] long iRightsIn);

Per l'attivazione dei diritti ProjectRights, la proprietà ProjectRightsEnabled dell'oggetto database deve essere impostata su true. I diritti ProjectRights dell'utente Admin non possono essere modificati.

Tutti gli utenti nel database di Visual SourceSafe dispongono di diritti per i progetti assegnati dall'utente Admin. L'assegnazione si estende nell'Elenco progetti finché non viene raggiunta un'altra assegnazione. Vengono, ad esempio, assegnati i diritti (VSSRIGHTS_ADDRENREM) (Aggiungi) all'utente User1 in $/, il progetto di primo livello. Se nel progetto $/Test non è definita alcuna assegnazione esplicita, all'utente User1 verranno assegnati automaticamente gli stessi diritti presenti nel progetto principale, $/. Se tuttavia si assegnano dei diritti VSSRIGHTS_READ (Sola lettura) all'utente User1 in $/Test/Samples, la precedente assegnazione in $/Test non potrà essere propagata nella struttura. Di conseguenza, l'utente User1 disporrà di diritti di sola lettura per $/Test/Samples e per qualsiasi progetto sottostante. Se i diritti per i progetti sono ereditati dal progetto principale, la proprietà ProjectRights includerà il flag VSSRIGHTS_INHERITED.

Quando si aggiunge un utente per la prima volta, all'utente vengono assegnati i diritti definiti per il progetto di primo livello in base ai diritti DefaultProjectRights dell'oggetto database.

Nell'esempio riportato di seguito viene illustrato come utilizzare la proprietà ProjectRights per impostare e ottenere i diritti di un utente per il progetto, $/A.

using System;
using Microsoft.VisualStudio.SourceSafe.Interop;

public class IVSSTest
{
    private static string GetUsername()
    {
        Console.Write("Enter Username: ");
        return Console.ReadLine();
    }

    private static string GetPassword()
    {
        Console.Write("Enter Password: ");
        return Console.ReadLine();
    }

    public static void Main()
    {
        // Create a VSSDatabase object.
        IVSSDatabase vssDatabase = new VSSDatabase();

        // Only SourceSafe Admin can access ProjectRights.
        Console.WriteLine("Admin login");
        vssDatabase.Open(@"C:\VSSTestDB\srcsafe.ini", 
                         GetUsername(), GetPassword());

        IVSSUser vssUser = vssDatabase.get_User("Guest");

        vssUser.set_ProjectRights("$/A", (int)VSSRights.VSSRIGHTS_READ);
        Console.WriteLine("Project Rights of user {0} for project $/A: {1}", 
                          vssUser.Name, 
                          (VSSRights)vssUser.get_ProjectRights("$/A"));

        vssUser.set_ProjectRights("$/A", (int)VSSRights.VSSRIGHTS_ALL);
        Console.WriteLine("Project Rights of user {0} for project $/A: {1}", 
                          vssUser.Name, 
                          (VSSRights)vssUser.get_ProjectRights("$/A"));
    }
}

Output:

Admin login

Enter Username:

Enter Password:

Project Rights of user Guest for project $/A: VSSRIGHTS_READ

Project Rights of user Guest for project $/A: VSSRIGHTS_ALL

Imports System
Imports Microsoft.VisualStudio.SourceSafe.Interop

Module IVSSTest

    Function GetUsername() As String
        Console.Write("Enter Username: ")
        Return Console.ReadLine()
    End Function

    Function GetPassword() As String
        Console.Write("Enter Password: ")
        Return Console.ReadLine()
    End Function

    Public Sub Main()

        ' Create a VSSDatabase object.
        Dim vssDatabase As IVSSDatabase = New VSSDatabase

        ' Only SourceSafe Admin can access ProjectRights.
        vssDatabase.Open("C:\VSSTestDB\srcsafe.ini", _
                         GetUsername(), GetPassword())

        Dim vssUser As IVSSUser = vssDatabase.User("Guest")

        vssUser.ProjectRights("$/A") = Fix(VSSRights.VSSRIGHTS_READ)
        Console.WriteLine("Project Rights of user {0} for project $/A: {1}", _
                          vssUser.Name, CType(vssUser.ProjectRights("$/A"), _
                          VSSRights))

        vssUser.ProjectRights("$/A") = Fix(VSSRights.VSSRIGHTS_ALL)
        Console.WriteLine("Project Rights of user {0} for project $/A: {1}", _
                          vssUser.Name, CType(vssUser.ProjectRights("$/A"), _
                          VSSRights))

    End Sub

End Module

Output:

Admin login

Enter Username:

Enter Password:

Project Rights of user Guest for project $/A: VSSRIGHTS_READ

Project Rights of user Guest for project $/A: VSSRIGHTS_ALL

Mostra: