الفريق والأمان
٣٩ صلاحية، وأربعة قيود، وحدّ واحد حقيقي
التحكم بالوصول في تطبيق أعمال مهمتان مختلفتان يُخلط بينهما عادة. الأولى إدارية: ماذا نعرض للموظف حتى ينجز عمله دون أن يغرق في كل شيء آخر. والثانية أمنية: ألّا تصل بيانات عمل تجاري إلى عمل آخر أبدًا. أكاد يعامل الاثنتين كمشكلتين منفصلتين بضمانتين مختلفتين، ويقول بوضوح أين ينتهي الأول ويبدأ الثاني.
وصول الموظف قائمة صلاحيات. كل صلاحية قدرة واحدة لها اسم واضح. ليست دورًا عليك أن تفكّكه، وليست مستوى يضمّ فيه «المدير» أحد عشر شيئًا لم يذكرها أحد. تؤشّر ما يفعله الشخص، وهذا بالضبط ما يستطيع فعله.
المالك هو الاستثناء، والاستثناء كامل: المالك يتجاوز كل فحص في المنصة. وهذا مقصود. لا بدّ من شخص واحد يصل إلى كل شيء، والتظاهر بغير ذلك ينتج أعمالًا محجوبة عن بياناتها بسبب نموذج صلاحيات بالغ الذكاء.
01
٣٩ صلاحية، بالمجموعات التي تراها فعلًا
هذه المجموعات الثماني كما يعرضها التطبيق، وكل صلاحية داخلها. لا شيء مجموع في حزمة — كل اسم أدناه مفتاح مستقل.
| المجموعة | الصلاحيات |
|---|---|
| الطلبات (٧) | createOrders · editOrders · deleteOrders · printOrders · sendShipments · viewShipmentLog · accessCashier |
| الأصناف (٤) | createItems · editItems · deleteItems · viewCostPrice |
| الأداء والإحصاءات (٨) | viewDashboardStatistics · viewSalesPerformance · viewInventoryPerformance · viewUsersPerformance · viewCategoriesPerformance · viewExpiryReport · viewStockHealth · viewCitiesPerformance |
| المالية (٦) | manageExpenses · manageIncomes · manageCashbox · manageCashier · manageDebts · viewFinancialReport |
| الأشخاص والوصول (٤) | manageUsers · manageCustomers · manageSuppliers · managePurchaseOrders |
| إعدادات المنصة (٧) | manageSettings · manageCategories · managePrinting · managePackageSize · manageIntegration · manageShippingCostRules · manageDiscountRules |
| البيانات والتصدير (٢) | exportOrders · exportItems |
| الحضور على الإنترنت (١) | manageOnlinePresence |
تستحق viewCostPrice ذكرًا خاصًا. سعر الكلفة هو الرقم الذي لا تريد أغلب الأعمال أن يتداوله أحد، لذلك لا يأتي ضمنًا مع صلاحية تعديل الأصناف — بل هو صلاحية مستقلة. يستطيع الموظف أن يدير قائمة الأصناف طوال اليوم دون أن يرى ما دفعته أنت. والصلاحيات التي تغيّرت أسماؤها عبر عمر المنصة تُرحَّل تلقائيًا، فيبقى الحساب القديم يعمل دون أن يعيد أحد التأشير من جديد.
02
الجزء غير المألوف
قيود تحدّ بدل أن تسمح
الصلاحيات تقول ما يجوز للموظف أن يفعله. والقيود تقول ما يجوز له أن يراه، وهي تعمل بعكس كل شيء آخر في الواجهة: إضافة مدخل تصغّر عالم الموظف لا تكبّره. القيود الأربعة كلها خلف صف واحد اسمه «متقدّم» يعرض عدّادًا بصيغة ن / ٤، فترى بنظرة واحدة إن كان الموظف مقيَّدًا أصلًا. وهي مخفية تمامًا عن المالكين، فالمالك لا يمكن تقييده.
لا مدخل يعني بلا قيد
الموظف الذي لا قيد مسجّلًا عليه يرى كل شيء — بما في ذلك الأقسام والزملاء الذين يُضافون الشهر القادم. هذه أهم خاصية عمليًا: الموظف غير المقيَّد لا يحتاج إلى تعديل كلما كبر العمل.
القائمة الفارغة تعني لا شيء
القيد المسجّل بلا اختيارات تعليمة حقيقية، ومعناها أن الموظف لا يرى شيئًا من ذلك النوع. الفارغ ليس كالغائب، والخلط بينهما هو الفرق بين «يرى كل شيء» و«لا يرى شيئًا».
اختيار الكل يلغي القيد
إذا أشّرت كل الأقسام يُحذف المدخل بدل أن يُخزَّن كقائمة بالأقسام الحالية. لولا ذلك لتوقّف الموظف الذي منحته القائمة كاملة اليوم عن رؤية ما يُضاف غدًا، دون أن ينتبه أحد.
03
القيود الأربعة
اثنان يحكمان ما يستطيع الموظف تغييره، واثنان يحكمان ما يستطيع رؤيته أصلًا.
| القيد | أثره عند وجوده |
|---|---|
| لا يعدّل الطلبات المنتهية | متى صارت حالة الطلب المحفوظة «مشحون» أو «مسلَّم»، لا يستطيع هذا الموظف تغيير محتوياته. ويبقى قادرًا على قراءته. |
| لا يضبط الحالات النهائية | تُحذف «مشحون» و«مسلَّم» من قائمة الحالات اليدوية عند هذا الموظف. أما تكامل شركة التوصيل فيبقى قادرًا على ضبطهما — الهدف منع الموظف من تعليم الطلب مسلَّمًا بيده، لا منع المندوب من الإبلاغ بما حصل فعلًا. |
| رؤية الأقسام | يرى الموظف الأقسام الرئيسية المذكورة فقط، والأصناف داخلها. والقسم الفرعي يظهر متى كان قسمه الأب مسموحًا. يسري النطاق على كل مسار قراءة — القائمة والبحث والتصدير والصور وأحجام العبوات والدفعات — ويحكم أيضًا الأقسام والتحميل المسبق والمواقع. |
| رؤية منشئي الطلبات | يرى الموظف الطلبات التي كتبها الأشخاص المذكورون فقط. والخيارات تشمل كل موظفي المؤسسة، إضافة إلى منشئ افتراضي يمثّل طلبات المتجر الإلكتروني وصفحات الهبوط. أي يمكنك أن تقول: طلباته هو، وكل ما يأتي من الموقع. |
04
كيف يتصرّف السجل المخفي
إخفاء السجل سهل. الصعب أن تخفيه دون أن يتسرّب وجوده من الأطراف.
السجل المخفي يردّ ٤٠٤ لا ٤٠٣
الردّ ٤٠٣ يؤكّد أن الشيء موجود وأنك ممنوع من رؤيته. أما ٤٠٤ فلا يقول شيئًا. الأصناف والطلبات خارج نطاق الموظف تردّ كأنها لم توجد يومًا — عند القراءة، وعند التعديل، وعند الإضافة إلى طلب.
المسار الجماعي مفلتَر أيضًا
حلّ أربعمئة رمز في نداء واحد مفيد فعلًا عند الجرد. وهو أيضًا الشكل المثالي لمحاولة تعداد الباركودات، ولهذا يُطبَّق عليه فلتر الأقسام. بدون ذلك يصير المسار الوحيد المصمَّم للكميات هو الطريق الوحيد للالتفاف على القيد.
الموظف المقيَّد لا يصله إشعار أصلًا
إشعار الطلب الجديد يحترم قيد رؤية منشئي الطلبات. من لا يستطيع رؤية الطلب لا يصله تنبيه عنه، وإلا لأخبره الإشعار بما تخفيه القائمة.
الفلترة قبل العدّ
تُطبَّق الرؤية قبل كل فلتر آخر وقبل حساب العدد، فتعكس مجاميع الصفحات والترقيم ما يراه الموظف. القائمة التي تقول «٨٧ طلبًا» وتعرض ٤١ خطأ ينتظر أن يقع، وهذا يمنعه من الأساس. وعمليات الشحن الجماعي محصورة بالطريقة نفسها، فلا يستطيع موظف مقيَّد أن يشحن طلبات المؤسسة كلها بضغطة واحدة.
القيود تسهيل إداري، لا حدّ أمني
نقولها بصراحة. قيود الرؤية مصمَّمة لتبقي شاشة الموظف قريبة من عمله ولتقلّل أثر الأخطاء العادية. وهي ليست مصمَّمة لتصمد أمام شخص مصرّ على كسرها، وإذا كانت بياناتها المخزّنة تالفة فإنها تفشل إلى جهة السماح — يرى الموظف أكثر لا أقل، لأن البديل عمل تجاري يتوقف عن العمل دون أن يفهم لماذا. أما الحدّ الحقيقي المبني ليصمد فهو فصل المؤسسات. لا تستعمل قيد أقسام في موضع تقصد فيه مؤسسة منفصلة.
05
الحدّ الذي يصمد فعلًا
كل مسار أعمال في المنصة معنون بمؤسسة، وكلها تمرّ بالفحص نفسه قبل أي عمل: هل هذه المؤسسة موجودة، وهل هذا المستخدم عضو فيها، وهل يملك الصلاحية التي يطلبها هذا المسار. لا يوجد طريق يتجاوز الفحص، ولا مسار يفترض العضوية من السياق.
وحالتا الفشل مفصولتان عمدًا. المؤسسة أو المستخدم غير الموجود يردّ ٤٠٤. أما مؤسسة حقيقية لست عضوًا فيها، أو صلاحية لا تملكها، فتردّ ٤٠٣ يسمّي أيّ الحالتين وقعت. هذا التمييز موجود لمن يصحّح إعداداته هو، ولا يكشف أبدًا شيئًا عن عمل لا علاقة لك به.
أما مسار المزامنة الجماعية الذي يغذّي وضع دون إنترنت فيتحقق من العضوية صراحةً بدل أن يرثها. ذلك المسار يعيد قائمة أصناف مؤسسة كاملة في استجابة واحدة، وكان يستحق كتابة الفحص مرتين بدل اكتشاف أن أي مستخدم مسجّل يستطيع سحب نسخة أي أحد.
06
الجلسات وتسجيل الدخول
رموز حاملة فقط
التحقق من الهوية يتم برمز موقَّع يحمل معرّف المستخدم، يُرسل كرمز حامل. لا توجد جلسة كوكيز ولا طريق بديل للتحقق من الطلب. وتُحفظ الرموز في التخزين الآمن للجهاز لا في تخزين التطبيق العادي.
طويلة العمر عن قصد
رموز الوصول تدوم ستة أشهر. المحل الذي يُخرج موظفيه من حساباتهم في منتصف الدوام ينتج حلولًا التفافية — حسابات مشتركة وكلمات مرور مكتوبة على ورق — أسوأ من الخطر الذي أراد الانتهاء السريع تفاديه.
تسجيل دخول اجتماعي متحقَّق منه كما يجب
تُتحقَّق رموز الدخول عبر Apple مقابل مفاتيح Apple العامة نفسها، وتُخزَّن مؤقتًا أربعًا وعشرين ساعة. ويمرّ Google وApple كلاهما عبر مسارات وسيطة لا يغادر فيها السرّ خادمنا.
07
حدود المعدل حسب المسار
تُحسب الحدود على عنوان العميل الحقيقي مع مراعاة الوسطاء، فلا تجعل بوابة مشتركة حركة زبون واحد تبدو كهجوم.
| مجموعة المسارات | الحد |
|---|---|
| تسجيل الدخول | ٥ في الدقيقة و٢٠ في الساعة |
| تسجيل الإشعارات وحذفها | ١٠ في الدقيقة |
| إرسال الإشعارات | ٥٠ في الساعة |
| الاستيراد الجماعي | ٨ في اليوم |
| روابط الصور الجماعية | ٥ في اليوم |
| توليد صور الأصناف | ٢٥ في اليوم، لكل مؤسسة |
| تشخيص العميل | ١٢ في الساعة |
| الأخبار | ٥ في الساعة |
| الإعلانات | ٢٠ في الساعة و٥٠ في الساعة |
| المتجر الإلكتروني العام | ٥٠٠ في الساعة، لكل عنوان ولكل متجر |
| إتمام الشراء في المتجر | ٢٠ في الساعة |
| تصفّح المتجر | ٣٠ إلى ٦٠ في الدقيقة |
| إنشاء الطلبات العامة | ٢٠ في الساعة |
| المدفوعات | ٣٠ في الدقيقة |
| تسعير الخصم | ٦٠ في الدقيقة |
| التحقق من كود الخصم | ٣٠ في الدقيقة |
حدود المتجر محسوبة لكل عنوان ولكل متجر لا بشكل عام، فلا يتعرّض زبائن محل مزدحم لتقييد بسبب حركة محل آخر.
08
تحت كل طلب
الطبقة التي لا ينبغي لأحد أن يفكر فيها، ونذكرها هنا لأن السؤال عن مكوّناتها سؤال مشروع.
سقف لحجم الطلب
أي طلب يعلن أكثر من ٣٠ MB يُرفض مباشرة. ومحلّل الرفع المتعدد يضع سقفًا مستقلًا لحجم الملف ولحجم الجزء عند ٣٠ MB، فلا يمكن الالتفاف على الحد بتقسيم الرفع إلى أجزاء.
تحصين الاستعلامات
أي طلب API يسأل عن أكثر من ١٠٠ سجل يُرفض، وكذلك أي نص استعلام يتجاوز ألف حرف. الحدّان لا يبلغهما الاستعمال الطبيعي أبدًا، وتبلغهما أدوات السحب فورًا.
محاولات التجسّس تُسجَّل لا تُرفض فقط
الطلبات على الأهداف المعتادة — لوحة إدارة، مسار ووردبريس، ملف بيئة، ملف إعدادات — تردّ ٤٠٤ وتُكتب كأحداث أمنية. رفضها هو الحدّ الأدنى، والمفيد هو معرفة متى بدأت.
ترويسات أمنية في كل استجابة
إيقاف استنتاج نوع المحتوى، ومنع التأطير، وسياسة إحالة صارمة، وترويسة هوية خادم تقول Akkad بدل المكوّنات الحقيقية. الأخيرة ليست أمانًا بذاتها، لكنها تحذف تلميحًا مجانيًا.
معرّف لكل طلب
كل طلب يحمل معرّفًا يُعاد إلى المُرسِل ويُمرَّر في السجلات المنظّمة. وحين يقع خلل تستطيع الإشارة إلى طلب واحد بعينه بدل وصف الوقت تقريبًا.
احتفاظ له تاريخ انتهاء
أحداث المراقبة تُحفظ ثلاثين يومًا، وسجلات الطلبات أربعة عشر يومًا. والمؤسسات الخاملة اثني عشر شهرًا تُنبَّه ثم تُحذف. البيانات التي لم تعد لازمة عبء، والتنظيف يجري بجدول لا بالنوايا الحسنة.
09
أسئلة
إذا قيّدت موظفًا بقسمين، هل تصله الأقسام الجديدة تلقائيًا؟
لا، وهذا هو معنى القاعدة المعكوسة. الموظف المقيَّد يرى المذكور فقط، والقسم الذي يُنشأ لاحقًا ليس مذكورًا. أما الموظف بلا قيد فيرث كل جديد تلقائيًا. فإن أردت لأحدهم أن يبقى يرى القائمة كاملة كلما كبرت، اتركه بلا قيد بدل أن تؤشّر كل المربعات.
ما الفرق بين قيد فارغ ولا قيد؟
لا مدخل يعني بلا قيد — يرى الموظف كل شيء، الآن ولاحقًا. أما القائمة الفارغة فهي تعليمة صريحة بأنه لا يرى شيئًا من ذلك النوع. الحالتان تتشابهان في قاعدة البيانات وتتصرّفان كنقيضين، لذلك تفصل بينهما الواجهة.
لماذا يردّ الطلب المخفي «غير موجود» بدل «غير مسموح»؟
لأن «غير مسموح» يؤكّد وجوده. إذا استطاع الموظف أن يعرف أن الطلب ٤٤١٧ حقيقي لمجرد أنه مُنع منه، فقد سرّب القيد الشيء نفسه الذي كان يخفيه. السجلات المخفية تتصرف كأنها لم تُنشأ.
هل أستطيع استعمال قيود الأقسام لفصل عملين أملكهما؟
لا. القيود تسهيل إداري، ومكتوب صراحةً أنها تفشل إلى جهة السماح إذا تلفت بياناتها. العملان المنفصلان يجب أن يكونا مؤسستين منفصلتين، وهذا هو الحدّ المفروض فعلًا في كل طلب.
هل يصل الموظف المقيَّد إشعار عن طلب لا يراه؟
لا. قيد رؤية منشئي الطلبات يُطبَّق على الإشعارات كما يُطبَّق على قائمة الطلبات، فلا يكشف التنبيه ما تخفيه القائمة.
هل يمكن تقييد المالك؟
لا. المالك يتجاوز كل فحص صلاحيات، وأدوات التقييد مخفية عنه تمامًا. لا بدّ من شخص يستطيع الوصول إلى كل شيء.
ذات صلة
التقارير والتحليلات
تسعة تقارير، كل واحد خلف صلاحيته — ومنها تقرير أداء الفريق الذي يحترم قيد رؤية المنشئين.
الطلبات
دورة الحياة التي تحكمها هذه القيود: الحالات والتعديل وسجل التغييرات والإنشاء غير المكرّر.
التطبيقات ودون إنترنت
ستة أنظمة تشغيل، واستلام الطلبات دون إنترنت، والطباعة، وبوابة صلاحيات نظام الإشعارات.
جرّبه على قائمة منتجاتك أنت
اختر الباقة المناسبة، واستورد منتجاتك من ملف إكسل، فيصير عندك متجر وكاشير ودفتر طلبات يعمل في اليوم نفسه.
تتوفر باقة مجانية. ولا تحتاج بطاقة للتجربة. والاستيراد ينقل قائمة منتجاتك الحالية معك.