#P1548
POST /personnel
Route Info
| Method |
Endpoint |
Controller |
Middleware |
Purpose |
| POST |
/personnel |
OfficialController@personnelStore |
authWithJwt |
ثبت اطلاعات و ایجاد کاربر (پرسنل) جدید در سیستم |
منطق عملکرد تابع
تابع personnelStore ورودی JSON شامل جزئیات پرسنل را دریافت و صحتسنجی میکند، سپس رکورد جدیدی در دیتابیس ایجاد میکند. بعد از ذخیره، شناسه و اطلاعات پایه کاربر جدید در خروجی برگردانده میشود.
- بررسی نقش کاربر جاری (دسترسی ایجاد پرسنل).
- اعتبارسنجی فیلدهای ضروری مثل نام، نام کاربری، شعبه، نقش.
- درج رکورد در جدول
operators به همراه هش کردن رمز عبور.
- اختصاص نقش و تنظیمات پیشفرض دسترسی.
- بازگرداندن خروجی موفق شامل شناسه و زمان ایجاد.
پارامترهای ورودی
| نام |
محل |
نوع |
الزامی |
توضیح |
| name |
Body |
string |
بله |
نام کامل پرسنل |
| username |
Body |
string |
بله |
نام کاربری (یونیک) |
| password |
Body |
string |
بله |
رمز عبور (پیش از ذخیره هش میشود) |
| branch |
Body |
integer |
بله |
شناسه شعبه |
| role |
Body |
integer |
بله |
شناسه نقش سازمانی |
| email |
Body |
string |
خیر |
ایمیل پرسنل |
| phone |
Body |
string |
خیر |
شماره تماس |
ساختار خروجی
{
"status": true,
"time": 1732366188,
"data": {
"id": 152,
"name": "علیرضا ایرانپور",
"username": "airanpour",
"branch": "اصفهان",
"role": "کارشناس فنی",
"created_at": "1404/08/03 12:45:21"
}
}
نکات امنیتی
- رمز عبور باید با الگوریتم امن مثل bcrypt هش شود.
- تمام ورودیها باید در سمت سرور اعتبارسنجی شوند.
- دسترسی ایجاد فقط برای نقشهای Admin یا HR فعال باشد.
عملکرد
- عملیات درج سریع است (کمتر از 50ms در DB با ایندکس بر روی username).
- نیاز به کوئری اضافی برای بررسی تکراری بودن username.
Dependencies
- Illuminate\Support\Facades\DB
- Carbon\Carbon
- Hash Facade
کدهای خطا
| کد |
شرح |
منبع |
| 400 |
ورودی ناقص یا نامعتبر |
Validation |
| 409 |
نام کاربری تکراری |
DB Unique Constraint |
| 500 |
خطای داخلی سرور |
Exception Handler |
پیشنهادهای امنیتی
- استفاده از rate limit برای جلوگیری از ثبت انبوه.
- گزارش همه عملیات ایجاد به سیستم لاگ مرکزی.
پیشنهادهای توسعهای
- افزودن قابلیت آپلود عکس پروفایل در هنگام ایجاد.
- افزودن فیلدهای سفارشی مانند وضعیت استخدام یا تاریخ شروع.
ممیزی و ثبت وقایع
- ثبت شناسه کاربر ایجادکننده و زمان دقیق ایجاد پرسنل.
جمعبندی
personnelStore نقطه ورود ایجاد پرسنل جدید است و باید با کنترلهای امنیتی و اعتبارسنجی دقیق همراه باشد.