Dieci giorni fa ho ricevuto la seguente mail:
Ciao Lorenzo,
qui mi stanno prendendo in giro mi dicono che non si può abilitare un programmatore ad avere accesso in lettura e scrittura su un progetto in team system (sorgenti) senza dargli l’accesso in lettura a tutto il repository.
Mi rifiuto di pensare che sia vero: mi mandi 2 screen shot con una spiegazione di come si fa??
Grazie mille,
XXXXX
Ed ecco la mia risposta (con notevole ritardo ):
Ciao XXXXX,
in effetti non ti stanno prendendo in giro. Vediamo cosa succede, e come risolvere il problema...
Lorenzo
Ecco in dettaglio cosa succede: prendiamo un Team Project, e assegnamo (per comodità) un utente al gruppo Readers:
A questo punto togliamo agli utenti del gruppo Readers ogni permesso sul Team Project:
e gli diamo i permessi di lettura e scrittura solo su una particolare cartella:
Verifichiamo che l'utente TfsSetup possa vedere tutto e l'utente Nicole solo la cartella selezionata:
Proviamo quindi a fare Check Out di un file con Nicole:
A questo punto riproviamo... ridiamo l'accesso al gruppo Readers al Team Project, e poi facciamo il giro su tutte le altre cartelle che non vogliamo che il gruppo Readers veda rimuovendo l'ereditarietà dei permessi:
Riproviamo a questo punto a fare il Check Out del file:
Bene... il tutto funziona... e naturalmente Nicole continua a non vedere le altre cartelle...
Ma... sulle cartelle ci siamo giocati i permessi di default!!!
Proviamo a trovare una strada più indolore, rimettiamo l'ereditarietà sulle altre cartelle, ma mettiamo in Deny il Read sulle cartelle che non vogliamo far vedere al gruppo Readers:
A questo punto continua a funzionare tutto, ma l'intervento è molto più indolore, e può essere automatizzato con l'Object Model (da codice o Power Shell), o tramite il comando TF Permission, eventualmente in un bel file Batch.
P.s. Attezione, mentre cerchiamo di riapplicare l'ereditarietà dei permessi ci ritroveremo tutte le cartelle "in bianco":
Per riavere tutto come prima basta reimpostare di usare l'ereditarietà...