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

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

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

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

مسئله تجاری

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

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

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

رویکرد فنی

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

نتیجه و شواهد

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

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

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

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

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

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

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

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

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