2009-07-01 28 views
5

मैं प्रोग्रामेटिक रूप से इसे बनाना चाहता हूं ताकि उपयोगकर्ता सूची में केवल कण आइटम देख सकें।शेयरपॉइंट सूची आइटम अनुमतियां

मूल रूप से एक वर्कफ़्लो में जो कोई आइटम बनने पर चलता है, मैं कुछ सामान करने जा रहा हूं और इस आइटम के बारे में कुछ लोगों को सूचित करता हूं। मैं यह भी चाहता हूं कि यह आइटम पर अनुमतियों को बदल सके ताकि केवल विशेष उपयोगकर्ता (आइटम सामग्री के आधार पर रनटाइम पर देखे गए) आइटम को पढ़ सकें। सूची में पहुंचने वाले शेष उपयोगकर्ताओं को केवल विशेष आइटम दिखाई देंगे, लेकिन उनमें से सभी नहीं। सूची आइटम का स्वामित्व स्वामित्व नहीं हो सकता है, लेकिन उपयोगकर्ता को इसे देखने की आवश्यकता है, इसलिए मैं सूची अनुमतियों को सेट नहीं कर सकता ताकि उपयोगकर्ता केवल अपनी वस्तुओं को देख सकें।

यदि यह मदद करता है तो इसे संदर्भ में रखने के लिए- सूची किसी विशेष सदस्य को नौकरी की भूमिका पंजीकृत कर रही है। प्रत्येक सूची आइटम एक रोल असाइनमेंट होता है जिसमें भूमिका सूची में भूमिका के लिए एक लुकअप होता है और सदस्य सूची में किसी सदस्य को लुकअप होता है। मैं भूमिकाओं के लिए सदस्यों की सूची में सीधे मल्टीलुकअप फ़ील्ड का उपयोग नहीं कर रहा हूं क्योंकि प्रत्येक रोल असाइनमेंट को इसके बारे में अतिरिक्त जानकारी की आवश्यकता होती है जैसे विवरण, एक प्रारंभ तिथि ect। प्रत्येक भूमिका में एक विशेष उपयोगकर्ता/समूह होता है जो इसे प्रबंधित करता है। मुझे यह चाहिए कि भूमिका निभाने की इस बड़ी सूची में जाने पर, उपयोगकर्ता केवल उन भूमिकाओं के लिए भूमिका असाइनमेंट देख सकता है जिनके वे प्रबंधक हैं।

सलाह की बहुत सराहना की जाएगी।

उत्तर

10

आप व्यक्तिगत सूची आइटमों को अनुमतियां असाइन कर सकते हैं। पूर्व के लिए

 // get list item 
     SPListItem item = <your list item>; 
     if (!item.HasUniqueRoleAssignments) 
     { 
      item.BreakRoleInheritance(true); 
     } 

     // get principal 
     SPPrincipal principal = <principal to grant permissions to>; 

     // get role definition 
     SPRoleDefinition rd = <role that contains the permissions to be granted to the principal>; 

     // create role assignment 
     SPRoleAssignment ra = new SPRoleAssignment(principal); 
     ra.RoleDefinitionBindings.Add(rd); 
     item.RoleAssignments.Add(ra); 

लेकिन प्रति सूची आइटम को अनुमति देने के प्रदर्शन और परिचालन प्रभावों के बारे में सावधान रहें।

सामान्य तौर पर, मैं पसंद करेंगे

  • अनुमतियां सूची स्तर
  • के रूप में संभव के रूप में ज्यादा से ज्यादा नहीं गहरी सौंपा, समूहों के लिए अनुमतियां प्रदान करते हैं और फिर उन समूहों में अलग-अलग उपयोगकर्ताओं शामिल हैं।
+0

इसके अलावा यह प्रश्न/उत्तर मदद कर सकते हैं: http://stackoverflow.com/questions/1058232 –

संबंधित मुद्दे