Amirali Yaghoutiمهندس ارشد نرم‌افزار

مطالعه موردی مهندسی

نقش محدود ویرایش سریع قیمت

قیمت‌گذاری روی یک کاتالوگ طلا و ساعت مدام تغییر می‌کند و نمی‌تواند منتظر کسی بماند که حساب ادمین دستش است. کارکنانی که باید قیمت را عوض کنند همان کارکنانی نیستند که باید بتوانند توضیحات، تصاویر، دسته‌ها یا قوانین موجودی محصول را ویرایش کنند. وردپرس نقشی ندارد که این خط را بکشد.

مسئله تجاری

دسترسی‌های وردپرس درشت‌دانه‌اند. دادن edit_products برای اینکه کسی بتواند یک قیمت را به‌روز کند، توانایی بازنویسی عنوان‌ها، تغییر دسته‌ها، دستکاری ویژگی‌ها و از انتشار درآوردن اقلام را هم می‌دهد. نقش مدیر فروشگاه به‌مراتب وسیع‌تر از نیاز است، و جایگزین عملی‌اش اشتراک‌گذاری یک لاگین مدیر بود که از هر دو بدتر است.

آنچه تحویل دادم

  • یک نقش محدود که دسترسی محصولش به فیلدهای قیمت قابل‌دسترس از ویرایش سریع باریک شده.
  • حذف سطوح گسترده‌تر ویرایش محصول برای آن نقش، تا ویرایشگر کامل محصول راهی برای دور زدن محدودیت نباشد.
  • اعمال روی مسیر ذخیره نه فقط در رابط کاربری، چون پنهان‌کردن یک فیلد یک انتخاب نمایشی است نه یک دسترسی.
  • نقشی که یک نقش عادی وردپرس باقی می‌ماند، پس با همان ابزارهایی که الان استفاده می‌شوند قابل تخصیص، لغو و ممیزی است.

رویکرد فنی

  • بررسی دسترسی جایی اتفاق می‌افتد که نوشتن اتفاق می‌افتد. هرچه فقط یک کنترل را در ادمین پنهان کند یک پیشنهاد است نه یک مرز.
  • ویرایش سریع عمداً به‌عنوان سطح انتخاب شد: باریک‌ترین مسیر ویرایشی است که ووکامرس از قبل فراهم می‌کند، پس نقش را می‌شود در یک جمله به کسی که دریافتش می‌کند توضیح داد.
  • نقش اعطا می‌کند نه اینکه سلب کند. شروع از هیچ و افزودن تنها دسترسی لازم، به شکلی قابل ممیزی است که شروع از مدیر فروشگاه و کم‌کردن هیچ‌وقت نیست.

نتیجه و شواهد

به‌روزرسانی قیمت واگذار شد بدون تحویل‌دادن کاتالوگ. نتیجه‌ی عملی این است که اعتبارنامه‌ی مدیر دیگر برای یک کار روزمره به اشتراک گذاشته نمی‌شود، که بهبود امنیتی واقعی همین‌جاست.

اهمیت برای کارفرما

لاگین‌های مشترک ادمین همان‌طوری است که تیم‌های تجاری کوچک در نهایت به صفر پاسخ‌گویی می‌رسند. جایگزین‌کردن یکی از آن‌ها با نقشی که دقیقاً یک کار می‌کند هزینه‌ی بسیار کمی دارد و یک ریسک دائمی را حذف می‌کند.

خلاصه-اجرایی-پروژه

خلاصه اجرایی خوانا

خلاصه_اجرایی {
  پروژه: "Quick Price Editor Role"
  هدف: "واگذاری تغییر قیمت بدون واگذاری کاتالوگ"
  سطح: "ویرایش سریع ووکامرس، فقط فیلدهای قیمت"
  مدل: "اعطا از صفر، نه کم‌کردن از مدیر فروشگاه"
  اعمال: "دسترسی روی ذخیره بررسی می‌شود، نه فقط روی رندر"
  مسدود: "ویرایشگر کامل محصول، تاکسونومی، رسانه، وضعیت انتشار"
  جایگزین_شد: "یک لاگین مدیر مشترک برای قیمت‌گذاری روزانه"
}

ارزش حرفه‌ای این پروژه

اصل ماجرا همان کمینه‌دسترسی معمول است؛ قضاوت مهندسی، انتخاب ویرایش سریع به‌عنوان مرز است، چون مدل دسترسی‌ای که هیچ‌کس نتواند توضیحش دهد مدلی است که هیچ‌کس رعایتش نمی‌کند.

اعمال روی ذخیره به‌جای روی رندر، تفاوت بین یک محدودیت واقعی و یک محدودیت ظاهری است. سر این تمایز ارزش دارد آدم سخت‌گیر باشد.