Proprietà IVSSUser.ReadOnly

Ottiene o imposta un valore che indica l'assegnazione di diritti di sola lettura per l'utente.

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

bool ReadOnly { get; set; }
/** @property */
boolean get_ReadOnly ()

/** @property */
void set_ReadOnly (/** @attribute InAttribute() */ boolean pReadOnly)

function get ReadOnly () : boolean

function set ReadOnly (pReadOnly : boolean)

Valore proprietà

true attiva i diritti di sola lettura, mentre false li disattiva.

[IDL]

HRESULT ReadOnly([out, retval] boolean *pReadOnly);

HRESULT ReadOnly([in] boolean ReadOnly);

In Visual SourceSafe sono disponibili due livelli di protezione che è possibile implementare mediante l'impostazione di ProjectRights e l'attivazione di diritti ReadOnly. Quando la proprietà ReadOnly è impostata su true, l'utente dispone di diritti di sola lettura sul database, indipendentemente da qualsiasi altra assegnazione di diritti. In altri termini, la proprietà ReadOnly ha priorità su ProjectRights.

Solo l'utente Admin può accedere alla proprietà ReadOnly. Se un utente diverso da Admin tenta di accedere alla proprietà ReadOnly di un altro utente, verrà generato un errore di run-time.

Nell'esempio riportato di seguito viene illustrato come utilizzare la proprietà ReadOnly per attivare i diritti di sola lettura di un utente per il progetto, $/A.


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

public class VSSUserTest
{
    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()
    {
        VSSDatabase vssDatabase = new VSSDatabase();
        // Only SourceSafe Admin can access ProjectRights
        Console.WriteLine("Admin login");
        vssDatabase.Open(@"C:\VSSTestDB\srcsafe.ini", 
                         GetUsername(),  GetPassword());
        // Get User:
        IVSSUser vssUser = vssDatabase.get_User("Guest");
        vssUser.set_ProjectRights("$/A", (int)VSSRights.VSSRIGHTS_READ);
        Console.WriteLine("Project Rights          :   " + 
                          (VSSRights)vssUser.get_ProjectRights("$/A"));
        vssUser.RemoveProjectRights("$/A");
        // '$/A' inherits Project Rights of '$/'
        Console.WriteLine("Project Rights          :   " + 
                          (VSSRights)vssUser.get_ProjectRights("$/A"));
        vssUser.set_ProjectRights("$/A", (int)VSSRights.VSSRIGHTS_ALL);
        Console.WriteLine("Project Rights          :   " + 
                          (VSSRights)vssUser.get_ProjectRights("$/A"));
        // Enable ReadOnly rights        
        vssUser.ReadOnly = true;
        Console.WriteLine("Read Only               :   " + vssUser.ReadOnly);
        vssUser.ReadOnly = false;
        Console.WriteLine("Read Only               :   " + vssUser.ReadOnly);

        Console.WriteLine("\n\n\nEnum of VSSRights:");
        Console.WriteLine("VSSRights.VSSRIGHTS_READ      = " + 
                          (int)VSSRights.VSSRIGHTS_READ);
        Console.WriteLine("VSSRights.VSSRIGHTS_CHKUPD    = " + 
                          (int)VSSRights.VSSRIGHTS_CHKUPD);
        Console.WriteLine("VSSRights.VSSRIGHTS_ADDRENREM = " + 
                          (int)VSSRights.VSSRIGHTS_ADDRENREM);
        Console.WriteLine("VSSRights.VSSRIGHTS_DESTROY   = " + 
                          (int)VSSRights.VSSRIGHTS_DESTROY);
        Console.WriteLine("VSSRights.VSSRIGHTS_ALL       = " + 
                          (int)VSSRights.VSSRIGHTS_ALL);
        Console.WriteLine("VSSRights.VSSRIGHTS_INHERITED = " + 
                          (int)VSSRights.VSSRIGHTS_INHERITED);
        Console.WriteLine("\n\n");
    }
}

Output:

Admin login
Enter Username: 
Enter Password: 
Project Rights          :   VSSRIGHTS_READ
Project Rights          :   31 (VSSRIGHTS_ALL + VSSRIGHTS_INHERITED)
Project Rights          :   VSSRIGHTS_ALL
Read Only               :   True
Read Only               :   False

Enum of VSSRights:
VSSRights.VSSRIGHTS_READ      = 1
VSSRights.VSSRIGHTS_CHKUPD    = 2
VSSRights.VSSRIGHTS_ADDRENREM = 4
VSSRights.VSSRIGHTS_DESTROY   = 8
VSSRights.VSSRIGHTS_ALL       = 15
VSSRights.VSSRIGHTS_INHERITED = 16
Mostra: