Parcourir la source

用户界面重置密码
观察者关闭货主同步

zhouzhendong il y a 4 ans
Parent
commit
6d6d741a2d

+ 16 - 0
app/Http/Controllers/UserController.php

@@ -2,6 +2,7 @@
 
 namespace App\Http\Controllers;
 
+use App\Components\AsyncResponse;
 use App\Role;
 use App\Supplier;
 use App\User;
@@ -14,10 +15,12 @@ use Illuminate\Http\Request;
 use Illuminate\Http\Response;
 use Illuminate\Support\Facades\Auth;
 use Illuminate\Support\Facades\Gate;
+use Illuminate\Support\Facades\Hash;
 use Illuminate\Support\Facades\Validator;
 
 class UserController extends Controller
 {
+    use AsyncResponse;
     /**
      * Display a listing of the resource.
      *
@@ -180,4 +183,17 @@ class UserController extends Controller
         $re=$user->delete();
         return ['success'=>$re];
     }
+
+    /**
+     * 重置密码
+     */
+    public function resetPassword()
+    {
+        $this->gate("用户-编辑");
+        $user = User::query()->find(\request("id"));
+        if (!$user)$this->error("用户不存在");
+        if (array_search($user->name,config("users.superAdmin"))!==false)$this->error("无权操作超管账户");
+        $user->update(["password" => Hash::make(request("pwd"))]);
+        $this->success();
+    }
 }

+ 1 - 1
app/Observers/OwnerObserver.php

@@ -17,7 +17,7 @@ class OwnerObserver
         app("OwnerAreaReportService")->notExistToInsert([$owner]);
         if(env('APP_ENV')=='production')
             app("OwnerService")->syncPush($owner);
-            app("OwnerService")->createAuthority($owner);
+            //app("OwnerService")->createAuthority($owner);
     }
 
     public function updated(Owner $owner)

Fichier diff supprimé car celui-ci est trop grand
+ 537 - 36
composer.lock


+ 27 - 0
resources/views/maintenance/user/_resetPwd.blade.php

@@ -0,0 +1,27 @@
+<div class="modal fade" id="modal" tabindex="-1" role="dialog" aria-hidden="true">
+    <div class="modal-dialog modal-dialog-centered" role="document">
+        <div class="modal-content">
+            <div class="modal-header">
+                <div class="text-center font-weight-bold">重置密码</div>
+                <button type="button" class="close" data-dismiss="modal">&times;</button>
+            </div>
+            <div class="modal-body">
+                <div class="form-group row">
+                    <label for="password" class="col-md-4 col-form-label text-md-right">输入新密码</label>
+                    <label class="col-md-6">
+                        <input type="text" style='text-security:disc; -webkit-text-security:disc;ime-mode:disabled' v-model="user.pwd" class="form-control"/>
+                    </label>
+                </div>
+                <div class="form-group row">
+                    <label for="password-confirm" class="col-md-4 col-form-label text-md-right">重输密码</label>
+                    <label class="col-md-6">
+                        <input type="text" style='text-security:disc; -webkit-text-security:disc;ime-mode:disabled' v-model="user.rePwd" class="form-control"/>
+                    </label>
+                </div>
+            </div>
+            <div class="modal-footer">
+                <button class="col-12 btn btn-success" @click="resetPwd()">确定</button>
+            </div>
+        </div>
+    </div>
+</div>

+ 24 - 1
resources/views/maintenance/user/index.blade.php

@@ -10,6 +10,7 @@
                     <div class="alert alert-success h1">{{Session::get('successTip')}}</div>
                 @endif
                 <div id="list">
+                    @include("maintenance.user._resetPwd")
                     <table class="table table-striped table-sm td-min-width-80" id="table">
                         <tr v-for="(user,i) in users"  @click="selectTr===i+1?selectTr=0:selectTr=i+1" :class="selectTr===i+1?'focusing' : ''">
                             <td class="text-muted"><span>@{{user.id}}</span></td>
@@ -35,6 +36,7 @@
                             <td class="text-muted"><span>@{{user.created_at}}</span></td>
                             <td>
                                 @can('用户-编辑')
+                                <button class="btn btn-sm btn-warning" @click="openResetPwdModal(user)">重置密码</button>
                                 <button class="btn btn-sm btn-outline-primary" @click="edit(user.id)">改</button> @endcan
                                 @can('用户-删除')
                                 <button class="btn btn-sm btn-outline-dark" @click="destroy(user)">删</button> @endcan
@@ -65,7 +67,8 @@
                     {name:'{{$owner->id}}',value:'{{$owner->name}}'},
                     @endforeach
                 ],
-                selectTr:0
+                selectTr:0,
+                user:{},
             },
             mounted:function(){
                 let data = [
@@ -130,6 +133,26 @@
                             tempTip.show('删除用户失败!'+'网络错误:' + err)
                         });
                 },
+                openResetPwdModal(user){
+                    this.user = user;
+                    $("#modal").modal("show");
+                },
+                resetPwd(){
+                    window.tempTip.setIndex(1099);
+                    window.tempTip.setDuration(3000);
+                    if (this.user.pwd.length<6){
+                        window.tempTip.show("密码最少为六位");
+                        return;
+                    }
+                    if (this.user.pwd!==this.user.rePwd){
+                        window.tempTip.show("两次密码输入不一致");
+                        return;
+                    }
+                    window.tempTip.postBasicRequest("{{url('maintenance/user/resetPassword')}}",this.user,()=>{
+                        $("#modal").modal("hide");
+                        return "已重置用户:“"+this.user.name+"”的密码";
+                    },true);
+                },
             }
         });
     </script>

+ 5 - 1
routes/web.php

@@ -244,7 +244,11 @@ Route::group(['prefix'=>'maintenance'],function(){
         Route::post("getProvinces",'RegionController@getProvinces');
     });
     /** 耗材 */
-    Route::get('material','MaterialController@index');;
+    Route::get('material','MaterialController@index');
+    /** 用户 */
+    Route::group(['prefix'=>"user"],function (){
+        Route::post("resetPassword",'UserController@resetPassword');
+    });
     /** 项目耗材 */
     Route::group(['prefix'=>"ownerMaterial"],function (){
         Route::get("/",'OwnerMaterialController@index');

Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff