Lettere al Genio del Male: permessi di lettura e scrittura in TFS

Share on:

Dieci giorni fa ho ricevuto la seguente mail:

Ciao Lorenzo,

qui mi stanno prendendo in giro smile_regular 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 smile_sad):

Ciao XXXXX,

in effetti non ti stanno prendendo in giro. Vediamo cosa succede, e come risolvere il problema... smile_regular

Lorenzo

Ecco in dettaglio cosa succede: prendiamo un Team Project, e assegnamo (per comodità) un utente al gruppo Readers:

SCE_Menu SCE_Groups SCE_GroupMembership

A questo punto togliamo agli utenti del gruppo Readers ogni permesso sul Team Project:

image

e gli diamo i permessi di lettura e scrittura solo su una particolare cartella:

image

Verifichiamo che l'utente TfsSetup possa vedere tutto e l'utente Nicole solo la cartella selezionata:

![SCE_TfsSETUP](http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/lbarbieri/WindowsLiveWriter/PerlaserieletterealGeniodelMale_1378D/SCE_TfsSETUP_thumb.jpg) ![SCE_Nicole](http://blogs.ugidotnet.org/images/blogs_ugidotnet_org/lbarbieri/WindowsLiveWriter/PerlaserieletterealGeniodelMale_1378D/SCE_Nicole_thumb.jpg)

Proviamo quindi a fare Check Out di un file con Nicole:

SCE_Error

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:

SCE_SecSett

Riproviamo a questo punto a fare il Check Out del file:

SCE_checkout

Bene... il tutto funziona... e naturalmente Nicole continua a non vedere le altre cartelle...

Ma... sulle cartelle ci siamo giocati i permessi di default!!! smile_confused

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:

image

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":

image

Per riavere tutto come prima basta reimpostare di usare l'ereditarietà...

Technorati Tags: Lettere al Genio del Male

Post originale