سلام. می خواستم افزونه ای رو بنویسم که فقط برای مدیریت فعال باشه یعنی مثلا یک فرم داریم که فقط مدیر بتونه اون رو ببینه و submit کنه و برای کاربرا اون فرم در دسترس نباشه. چکار باید بکنم؟
سلام. می خواستم افزونه ای رو بنویسم که فقط برای مدیریت فعال باشه یعنی مثلا یک فرم داریم که فقط مدیر بتونه اون رو ببینه و submit کنه و برای کاربرا اون فرم در دسترس نباشه. چکار باید بکنم؟
پاسخها:
مرتبسازی بر اساسسلام
هر افزونه یک بخش تنظیمات دارد که فقط مدیریت سامانه که دسترسی به بخش مدیریت دارد می تواند آن را ببیند. می توانید در تنظیمات افزونه، مورد خود را پیادهسازی کنید.
اگر فکر میکنید ممکن است در آینده دسترسی بخشی که در نظر دارید به افراد دیگر هم اختصاص دهید (تعریف نقش)، میبایست در فایل install افزونه مورد نظر خود، با استفاده از کلاس OW::getAuthorization ابتدا دسترسیها را تعریف کنید مانند مشاهده کردن، ویرایش کردن و ... و سپس توابع لازم مانند (addAuthLabels) در event_handler افزونه و هر جای دیگری که لازم است تعریف کنید.(برای راهنمایی میتوانید کدهای استفاده شده در افزونههای دیگری که مجوز دسترسی در مدیریت نقشها دارند را مطالعه کنید). پس از پیادهسازی کامل کد، در هر مرحله که نیاز به بررسی دسترسی داشتید می بایست از OW::getUser()->isAuthorized برای بررسی دسترسی کاربر استفاده کنید.
نمونه تعریف دسترسی ها در فایل install افزونه رویداد:
$authorization = OW::getAuthorization(); $groupName = 'event'; $authorization->addGroup($groupName); $authorization->addAction($groupName, 'add_event');
$authorization->addAction($groupName, 'view_event', true); $authorization->addAction($groupName, 'add_comment');
اگر باز هم سوالی داشتید اطلاع دهید
تشکر