ソースを参照

用户批量创建的格式进行修改,创建时需校验输入的密码,编辑时新密码不是必填

kely 11 ヶ月 前
コミット
8cafe980eb

+ 1 - 1
app/Http/Controllers/API/UserController.php

@@ -76,7 +76,7 @@ class UserController extends Controller
      * @return \Illuminate\Http\Response
      */
     public function batchStore(BatchCreateRequest $request){
-        $userData = $request->all();
+        $userData = $request->users;
         DB::transaction(function () use ($userData) {
         foreach ($userData as $k => $data) {
             $user = new User();

+ 32 - 25
app/Http/Requests/API/User/BatchCreateRequest.php

@@ -9,6 +9,7 @@ use App\Models\Role;
 use Illuminate\Foundation\Http\FormRequest;
 use Illuminate\Support\Facades\Auth;
 use Illuminate\Validation\Rule;
+use Illuminate\Support\Facades\Hash;
 
 class BatchCreateRequest extends FormRequest
 {
@@ -29,34 +30,40 @@ class BatchCreateRequest extends FormRequest
      */
     public function rules(): array
     {
-        $departmentIds=[];
-        if(Auth::user()->super_admin){ //若是超级管理员可以查看所有部门,且添加
-            $departmentIds = Department::withoutGlobalScopes()->pluck('id')->toArray();
-
-        }else{
-            $departmentIds = Department::pluck('id')->toArray();
-        }
-        $roleIds = Role::pluck('id')->toArray();
-
-        $IdsAndDitto=$departmentIds;
-        $IdsAndDitto[] = 'ditto';
-
-        $IdsAndDittoWithRole=$roleIds;
-        $IdsAndDittoWithRole[]='ditto';
+//        $departmentIds=[];
+//        if(Auth::user()->super_admin){ //若是超级管理员可以查看所有部门,且添加
+//            $departmentIds = Department::withoutGlobalScopes()->pluck('id')->toArray();
+//
+//        }else{
+//            $departmentIds = Department::pluck('id')->toArray();
+//        }
+//        $roleIds = Role::pluck('id')->toArray();
+//
+//        $IdsAndDitto=$departmentIds;
+//        $IdsAndDitto[] = 'ditto';
+//
+//        $IdsAndDittoWithRole=$roleIds;
+//        $IdsAndDittoWithRole[]='ditto';
 
         return [
-            '*.name' => 'required|max:100',
-            '*.email'=>  'nullable|email',
-            '*.username'=>'required|max:30|unique:users',
+                'users.*.name' => 'required|max:100',
+                'users.*.email'=>  'required|email|unique:users',
+                'users.*.username'=>'required|max:30|unique:users',
 //            '*.pwd_is_ditto'=>'required|in:1,0',取消密码同上
-            '*.password' => 'required|min:6|regex:/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{6,}$/',//至少6位,包含大小写字母和数字,At least 6 digits, including upper and lower case letters and numbers
-            '*.gender'=>'nullable|in:1,0',
-            '*.company_id'=>'required|exists:company,id',
-            '*.department_id'=>[
-                Rule::in($IdsAndDitto),
-            ],
-            '*.role_id'=>[
-                Rule::in($IdsAndDittoWithRole),
+                'users.*.password' => 'required|min:6|regex:/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{6,}$/',//至少6位,包含大小写字母和数字,At least 6 digits, including upper and lower case letters and numbers
+                'users.*.gender'=>'nullable|in:1,0',
+                'users.*.company_id'=>'required|exists:company,id',
+                'users.*.department_id'=>'required|exists:department,id',
+                'users.*.role_id'=> 'required|exists:roles,id',
+
+            'auth_password' => [
+                'required',
+                function ($attribute, $value, $fail) {
+
+                    if (!Hash::check($value, Auth::user()->password)) {
+                        $fail("Wrong security authentication password!");
+                    }
+                }
             ],
         ];
     }

+ 12 - 1
app/Http/Requests/API/User/CreateRequest.php

@@ -4,6 +4,8 @@ namespace App\Http\Requests\API\User;
 
 use App\Http\Requests\RuleHelper;
 use Illuminate\Foundation\Http\FormRequest;
+use Illuminate\Support\Facades\Auth;
+use Illuminate\Support\Facades\Hash;
 
 class CreateRequest extends FormRequest
 {
@@ -27,7 +29,7 @@ class CreateRequest extends FormRequest
 
         return [
             'name' => 'required|max:100',
-            'email' => 'nullable|email',
+            'email' => 'required|email|unique:users',
             'username'=>'required|max:30|unique:users',
             'password' => 'required|min:6|regex:/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{6,}$/', // 至少6位,包含大小写字母和数字,At least 6 digits, including upper and lower case letters and numbers
             'phone'=>'nullable|regex:/^\d{8,11}$/',
@@ -36,6 +38,15 @@ class CreateRequest extends FormRequest
             'company_id'=>'required|exists:company,id',
             'department_id'=>'required|exists:department,id',
             'role_id'=>'required|exists:roles,id',
+            'auth_password' => [
+                'required',
+                function ($attribute, $value, $fail) {
+
+                    if (!Hash::check($value, Auth::user()->password)) {
+                        $fail("Wrong security authentication password!");
+                    }
+                }
+            ],
         ];
     }
 

+ 3 - 4
app/Http/Requests/API/User/UpdateRequest.php

@@ -26,11 +26,10 @@ class UpdateRequest extends FormRequest
      */
     public function rules(): array
     {
-
         return [
             'name' => 'max:100',
-            'email'=> ['nullable','email'],
-            'password' => 'min:6|regex:/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{6,}$/', // 至少6位,包含大小写字母和数字,At least 6 digits, including upper and lower case letters and numbers
+            'email' => 'required|email',//为了编辑时没改邮箱的情况不用required|email|unique:users
+            'password' => 'nullable|min:6|regex:/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{6,}$/', // 编辑时可为空,包含大小写字母和数字,At least 6 digits, including upper and lower case letters and numbers
             'auth_password' => [
                 'required',
                 function ($attribute, $value, $fail) {
@@ -45,7 +44,7 @@ class UpdateRequest extends FormRequest
             'address'=>'max:255',
             'company_id'=>'exists:company,id',
             'department_id'=>'exists:department,id',
-            'role_id'=>'required|exists:roles,id',
+            'role_id'=>'required|5:roles,id',
 
         ];
     }

+ 2 - 0
app/Models/User.php

@@ -34,6 +34,8 @@ class User extends Authenticatable
         'created_by',
         'gender',
         'address',
+        'phone',
+        'status',
     ];
 
     /**