Skip to main content
#P1542

GET /personnel/attendance/permission

Route Info

Method Endpoint Controller Middleware Purpose
GET /personnel/attendance/permission OfficialController@attendancePersonnelPermission authWithJwt دریافت نوع و وضعیت مجوز حضور و غیاب برای پرسنل در شعبهٔ فعلی

منطق عملکرد تابع

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

  1. واخوانی مقدار تنظیم حضور و غیاب شعبه جاری از جدول office_config.
  2. در صورت نبود تنظیم، پاسخ خطای ۴۰۹ با پیام «تنظیمات تعریف نشده است» بازگردانده می‌شود.
  3. در غیر این صورت، مقدار کلید بررسی و متن نمایشی فارسی آن تنظیم می‌گردد (مثلاً full → «تصویر / موقعیت»).
  4. اگر نوع تنظیم face یا full باشد، داده چهرهٔ کاربر از جدول attendance_face_encoding واکشی می‌شود تا مشخص گردد آیا اجازهٔ ثبت چهره دارد یا نه.
  5. در نهایت پاسخ JSON شامل نوع، وضعیت مجوز و جزئیات ذخیره می‌شود.

پارامترهای ورودی

نام محل نوع الزامی توضیح
Authorization Header Bearer JWT بله توکن کاربر برای احراز هویت
branch Request integer بله شناسه دفتر جاری جهت تشخیص تنظیمات حضور

ساختار خروجی

{
  "payload": {
    "type": {
      "fa": "تصویر / موقعیت",
      "en": "full"
    },
    "permission": true,
    "details": {
      "base_image": "base64Encoded...",
      "status": 1
    }
  },
  "meta": {
    "timestamp": 1732365700
  }
}
در صورت عدم تعریف تنظیم:
{
  "error": {
    "code": 1000,
    "message": "تنظیمات تعریف نشده است"
  },
  "meta": { "timestamp": 1732365700 }
}

نکات امنیتی

  • دسترسی محدود به کاربران احراز‌شده با JWT معتبر.
  • اطلاع از تنظیمات سایر شعب صرفاً برای مدیران مجاز مجاز است.
  • تابع مستقیماً دادهٔ بیومتریک را باز نمی‌گرداند، بلکه صفر و یک مجوز را تعیین می‌کند.

عملکرد و بهینه‌سازی

  • دو کوئری سبک به جدول‌های office_config و attendance_face_encoding.
  • زمان پاسخ معمول کمتر از ۵۰ میلی‌ثانیه.

Dependencies

  • Illuminate\Support\Facades\DB
  • Carbon\Carbon
  • Morilog\Jalali\Jalalian

کدهای خطا

کد شرح منبع
401 JWT نامعتبر یا منقضی AuthWithJwt
409 تنظیمات حضور برای دفتر تعریف نشده DB query
500 اشکال داخلی یا استثناء دیتابیس Exception handler

پیشنهادهای امنیتی

  • جلوگیری از بازگرداندن مستقیم تصویر پایه در خروجی عمومی.
  • رمزنگاری کلید base_image هنگام ذخیره در DB.

پیشنهادهای توسعه‌ای

  • افزودن تاریخ آخرین به‌روزرسانی تنظیمات دفتر.
  • نمایش سطح اعتماد سیستم تشخیص چهره در پاسخ.
  • کش‌کردن نتیجه برای هر شعبه به‌مدت ۵ دقیقه.

ممیزی و ثبت وقایع

  • ثبت شناسه کاربر و دفتر در جدول system_audit_logs به همراه زمان درخواست.
  • نوع درخواست: attendance_permission_check

جمع‌بندی

attendancePersonnelPermission پایه‌ای‌ترین متد زیرساختی برای سیستم حضور و غیاب است که مشخص می‌کند آیا کاربر می‌تواند بر اساس نوع تعریف‌شده دفتر (موقعیت، تصویر یا هر دو) اقدام به ثبت تردد کند یا خیر.