Skip to main content
#P1547

GET /personnel

Route Info

Method Endpoint Controller Middleware Purpose
GET /personnel OfficialController@personnelIndex authWithJwt دریافت فهرست یا اطلاعات کلی همه پرسنل برای نمایش در داشبورد مدیریت

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

این متد بدون نیاز به ورودی جزئی، لیست کامل پرسنل یا اطلاعات پایه آن‌ها را از دیتابیس واکشی می‌کند. بسته به نقش و سطح دسترسی کاربر، ممکن است فیلترهایی روی لیست اعمال شود (مثلاً فقط پرسنل فعال یا پرسنل زیرمجموعه یک شعبه خاص).

  1. بررسی نقش کاربر از روی JWT برای تعیین محدوده دسترسی به داده‌ها.
  2. واکشی رکوردها از جدول operators یا جداول مرتبط.
  3. بارگذاری داده‌های مرتبط مانند وضعیت، شعبه، نقش، اطلاعات تماس.
  4. بازگرداندن خروجی JSON با کلید data و متادیتا.

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

این متد پارامتر ورودی از کاربر ندارد، اما نیاز به درخواست GET همراه با توکن JWT معتبر دارد.

نام محل نوع الزامی توضیح
Authorization Header string بله توکن JWT معتبر

ساختار خروجی

{
  "status": true,
  "time": 1732366138,
  "data": [
    {
      "id": 1,
      "name": "علی رضایی",
      "username": "alireza",
      "branch": "اصفهان",
      "status": 1,
      "role": "مدیر سیستم",
      "phone": "09123456789",
      "email": "alireza@example.com",
      "created_at": "1404/02/15"
    },
    ...
  ]
}

نکات امنیتی

  • اطلاعات حساس مانند ایمیل و شماره تماس فقط به کاربران دارای نقش مدیر نمایش داده می‌شود.
  • خروجی باید بر اساس سطح دسترسی کاربر فیلتر شود.

عملکرد

  • پاسخ متکی به یک کوئری اصلی SELECT با امکان استفاده از ایندکس روی فیلد status و branch.
  • زمان پاسخ معمول: 40–70ms با کش مناسب.

Dependencies

  • Illuminate\Support\Facades\DB
  • Carbon\Carbon

کدهای خطا

کد شرح منبع
401 توکن JWT نامعتبر یا منقضی شده Middleware
500 خطای داخلی سرور Exception Handler

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

  • اعمال mask روی بخشی از شماره تماس در خروجی عمومی.
  • ثبت لاگ همه درخواست‌های مشاهده لیست پرسنل.

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

  • افزودن امکان فیلتر بر اساس نقش، شعبه و وضعیت.
  • افزودن قابلیت pagination برای لیست‌های بزرگ.

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

  • ثبت شناسه کاربر درخواست‌کننده و زمان مشاهده لیست.

جمع‌بندی

personnelIndex نقطه شروع واکشی داده‌های پرسنل است و باید‌ سریع، امن و منطبق با نقش کاربر اجرا شود.