#P1542
GET /personnel/attendance/permission
Route Info
| Method | Endpoint | Controller | Middleware | Purpose |
| GET | /personnel/attendance/permission | OfficialController@attendancePersonnelPermission | authWithJwt | دریافت نوع و وضعیت مجوز حضور و غیاب برای پرسنل در شعبهٔ فعلی |
منطق عملکرد تابع
این تابع تعیین میکند که کاربر جاری در هنگام ثبت تردد در چه شرایطی مجاز به انجام حضور و غیاب است. تنظیمات بسته به مقدار ذخیرهشده در کلید ATTENDANCE جدول office_config مشخص میشوند.
- واخوانی مقدار تنظیم حضور و غیاب شعبه جاری از جدول
office_config. - در صورت نبود تنظیم، پاسخ خطای ۴۰۹ با پیام «تنظیمات تعریف نشده است» بازگردانده میشود.
- در غیر این صورت، مقدار کلید بررسی و متن نمایشی فارسی آن تنظیم میگردد (مثلاً full → «تصویر / موقعیت»).
- اگر نوع تنظیم
faceیاfullباشد، داده چهرهٔ کاربر از جدولattendance_face_encodingواکشی میشود تا مشخص گردد آیا اجازهٔ ثبت چهره دارد یا نه. - در نهایت پاسخ 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 پایهایترین متد زیرساختی برای سیستم حضور و غیاب است که مشخص میکند آیا کاربر میتواند بر اساس نوع تعریفشده دفتر (موقعیت، تصویر یا هر دو) اقدام به ثبت تردد کند یا خیر.