Skip to main content
#P1545

POST /personnel/operation

Route Info

Method Endpoint Controller Middleware Purpose
POST /personnel/documentoperation OfficialController@personnelDocumentOfficialController@operationPersonnel authWithJwt مدیریتاجرای مستنداتعملیات ومدیریتی فایل‌هایروی مرتبط باپرونده پرسنل (رزومه،بروزرسانی، قرارداد،تغییر مدارکوضعیت، هویتی,مسدودسازی سوابق)موقت)

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

تابع personnelDocument به‌منظوراین ثبت،متد به‌روزرسانیعملیاتی یارا واکشیکه مستنداتاز پرسنلیطریق طراحیکلید شده است. بسته به نوع ورودی (action عملیات متفاوتی انجاممشخص می‌دهد:شود، روی پرسنل اجرا می‌کند:

    • پارامتر action راupdate: بررسیآماده‌سازی می‌کندبرای بروزرسانی اطلاعات پرسنل (create, update, delete, list)در نسخه فعلی فاقد منطق داخلی).
    • درstatus: صورت تغییر فیلد liststatus، با join بهاپراتور جدول personnel_documents، داده‌های مربوط به person_id را واکشی می‌کند.مشخص‌شده.
    • در صورت create، فایل جدید را در مسیر تعریف‌شده ذخیره و رکورد دیتابیسblocking: ثبت می‌شود.زمان مسدودسازی تا لحظه‌ای معین روی فیلد blocked_up اپراتور.

در حالت update،پایان، متادیتاینتیجه فایلاجرای (نوع، عنوان، تاریخ انقضا)عملیات به‌روزرسانیصورت JSON بازگردانده می‌شود.

  • در حالت delete، فایل فیزیکی و رکوردش از دیتابیس حذف می‌گردد.
  • در همه حالات، پاسخ JSON استاندارد با وضعیت و جزئیات بازگردانده می‌شود.
  • پارامترهای ورودی

    نام محل نوع الزامی توضیح
    idBodyintegerبلهشناسه پرسنل
    action Body string بله نوع عملیات (create, update, delete,status, list)blocking)
    fileid Body(form-data)Body fileinteger در create/updateبله فایلشناسه مستنداپراتور بارگذاری‌شده (PDF، JPG، …)هدف
    titlestatus Body stringinteger خیر عنوانمقدار مستندوضعیت برای UIجدید (برای action=status)
    expire_dateduration Body stringinteger خیر تاریخمدت انقضازمان مسدودسازی به دقیقه (اختیاریپیش‌فرض: 15 دقیقه، برای مدارک زمان‌دار)action=blocking)

    ساختار خروجی

    // موفق
    {
      "status": true,
      "time": 1732365700,
      "data": [
        {
          "id": 44,
          "title": "کارت ملی",
          "file_url": "https://api.domain.ir/storage/personnel/44_national_card.pdf",
          "expire_date": "1405/12/20",
          "created_at": "1404/02/18"1732365890
    }
    
    ]// }خطا
    
    در صورت خطا:
    {
      "status": false,
      "time": 1732365700,
      "code": 1003,1732365890,
      "message": "خطا500 در: ذخیرهSQLSTATE[...]", 
      فایل"trace": یا[ عدم... دسترسی."]
    }
    

    نکات امنیتی

    • تماماجرای درخواست‌عملیات فقط توسط ادمین‌ها یا کاربران دارای مجوز مدیریت پرسنل مجاز است.
    • ورودی‌ها باید توسطاعتبارسنجی کاربرانشوند احراز‌شده (JWT معتبر) ارسال شود.
    • احراز شعبه و مالکیت فایل قبلتا از حذفتغییر یاناخواسته تغییر.
    • تشخیص MIME-type واقعی فایل‌ها برایاطلاعات جلوگیری از بارگذاری اسکریپت مخرب.شود.

    عملکرد

    • بارگذاریتمامی فایلتغییرات با استفادهیک کوئری ساده UPDATE روی جدول operators انجام می‌شود.
    • پاسخ معمولاً کمتر از Disk Driver (Local/AWS S3)50ms طبقتولید تنظیمات config/filesystems.php.
    • مدیریت حجم فایل با حد ۲۵ مگابایت و زمان پاسخ < 150 ms برای لیست.می‌شود.

    Dependencies

    • Illuminate\Support\Facades\Storage
    • Illuminate\Support\Facades\DB
    • Carbon\Carbon
    • Exception handling (PHP native)

    کدهای خطا

    کد شرح منبع
    500خطای عمومی پایگاه داده یا منطقException
    400 ورودی نامعتبر یا فایل یافت نشد Validation
    403عدم مجوز برای عملیات در فایلAccess Control
    500خطای سرور یا فایل‌سیستمStorage servicelayer

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

    • رمزگذاریثبت ناملاگ فایل‌هایکامل ذخیره‌شده.عملیات انجام‌شده همراه با کاربر اجراکننده.
    • افزودنمحدود ماژولکردن اسکنمدت ویروسمسدودسازی برایبه فایل‌هایحداکثر جدید.معقول (مثلاً 24 ساعت).

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

    • اجازهتکمیل دسترسیمنطق نسخه Preview در مرورگرaction=update برای PDFبروزرسانی وخودکار تصویر.اطلاعات.
    • قابلیتافزودن جستجوپاسخ بیناستاندارد عناوینهمراه مستندات.با نتیجه دقیق هر عملیات.

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

    • ثبت هر عملیات create/update/delete با شناسه کاربر و IP.
    • ذخیره مسیر فایل و زمان دقیقتغییر در جدول audit_document_logs.وضعیت یا مسدودسازی باید در جدول logهای امنیتی ذخیره شود.

    جمع‌بندی

    personnelDocumentoperationPersonnel به‌صورت یکابزار ماژولمدیریتی مستقلپرسنل برایاست بارگذاریکه وامکان مدیریتتغییر مستنداتسریع پرسنلیوضعیت عملیا اعمال محدودیت را فراهم می‌کند و پایه‌گذارباید سیستمبا مدیریتسیاست‌های فایلامنیتی یکپارچهسختگیرانه در بخش HR است.اجرا شود.