ستون‌های فقط خواندنی، مخفی و مجوزدهی ستون‌ها در لیست‌های شیرپوینت

برای انجام کاری نیاز به لیستی داشتم که بشه بعضی ستون‌هاش رو ReadOnly و Hidden کرد. موقعی که برای یک لیست در شیرپوینت ستونی تعریف می‌کنید چنین گزینه‌ای وجود نداره اما با برنامه نویسی و از طریق property هایی مثل ReadOnlyField میشه اینو درست کرد، حتی با کمک چند تا property دیگه (مثلاً ShowInEditForm و ShowInNewForm و ...) میشه تعریف کرد که یک فیلد خاص توی فرم ویرایش یا نمایش یا ایجاد نشون داده بشه یا نه. تا اینجای کار ساده است.

اما اگر بخواهیم روی فیلد دسترسی ست کنیم چی؟ خب اینجاست که شیرپوینت هیچ روش مستقیمی چه از طریق UI و چه از طریق کدنویسی نداره! البته مایکروسافت لطف کرده و برای رندر شدن کنترل‌های مختلف توی فرم‌های ویرایش و جدید و نمایش شیرپوینت، کلاس و متدهایی رو تعریف کرده که  override کردنشون یک راه حل غیرمستقیم برای کاربرد مورد نظر من هست.

بعد از چند ساعت جستجو و کدنویسی و تست بالاخره نسخه یک راهکار "تعیین سطح دسترسی برای ستون‌های لیست شیرپوینت" آماده شد، هر چند هنوز از نظر ظاهری کار داره. این راهکار بعد از نصب و فعالسازی به قسمت تنظیمات لیست اضافه میشه و به کاربر امکان این رو می‌ده که برای هر ستون شیرپوینت دسترسی جداگانه‌ای رو به دلخواه ست کنه.  این راهکار البته نمونه‌های تجاری هم داره مثل این و این و چند نمونه دیگه که قابلیت‌های دیگه‌ای مثل تعیین مجوزها به صورت شرطی و ... رو هم دارند.

مساله مشابهی برای مجوزدهی روی Content Type‌ها و View ها در شیرپوینت وجود داره که به تدریج همه این‌ها رو در قالب یک solution‌ کامل پرنیانی برای رفع نقایص مجوزدهی در شیرپوینت ارائه می‌کنیم.

ارسال نظر

آخرین نظرات

Comment RSS