Dnes jsem zase narazil na jednu "zajímavou vlastnost" SharePointu.
Týká se to práv, neboli oprávnění. Standardně se oprávnění v SharePointu, dědí tzn. oprávnění nastavená na úrovni seznamu (ale i knihovny dokumentů) se automaticky aplikují i na položky seznamu. Samozřejmě se ale dají nastavit oprávnění i na úrovni jednotlivých položek. V takovém případě se dědění přeruší a od toho okamžiku si oprávnění seznamu a dotčených položek žijí vlastním životem. Tedy mělo by to tak být... ale není.
Po čase zjistíte, že na úrovni seznamu už
nemáte jen oprávnění, která jste sami nastavili, ale jsou tam oprávnění pro každého
jednotlivého člověka (nebo skupinu), který má individuálně nastavená oprávnění na nějaké položce v daném seznamu. SharePoint totiž pro každého, komu je nastaveno oprávnění
na úrovni položky, přidělí na úrovni seznamu oprávnění Omezený přístup.
Toto oprávnění samo dotyčného neopravňuje k ničemu a SharePoint si ho tam
přidává automaticky patrně z nějakého vnitřního důvodu.
Problém nastane v situaci, kdy se pokusíte oprávnění na úrovni seznamu smazat! V takovém případě se odstraní oprávnění nejen na úrovni seznamu, ale i všechna oprávnění dotčeného uživatele (nebo skupiny) ze všech obsažených položek. A to včetně těch, které mají individuálně nastavená práva.
Řešením (i když je to takové drbání levou rukou za pravým uchem) je oprávnění na úrovni seznamu nemazat, ale měnit je na oprávnění "Omezený přístup".
Představte si následující situaci:
Máme seznam úkolů. Na něm jsou nastavena oprávnění tak, že do něj mohou přidávat úkoly členové skupiny Vedení a Konzultanti. Dále nad tímto seznamem běží workflow, které se spustí při vložení úkolu. Reaguje tak, že přeruší dědění oprávnění a nastaví je tak, že skupina Vedení může úkol editovat a smazat a ten, komu je úkol přiřazen, ho může editovat. Konzultanti úkol mohou číst. Pak se rozhodnete, že konzultanti nebudou moci vkládat úkoly, takže jim oprávnění na úrovni seznamu v dobré víře odstraníte. Tím si ale nas....te do bot, protože v tu chvíli se konzultantům odeberou oprávnění čtení i ze všech úkolů.
Nejprve jsem doufal, že se toto chování týká jen SharePointu 2007, ale projevuje se stejně i v SharePointu 2010.