|
@@ -15,6 +15,7 @@ use App\Models\Enums\RequirementStatus;
|
|
use App\Models\Menu;
|
|
use App\Models\Menu;
|
|
use App\Models\Permission;
|
|
use App\Models\Permission;
|
|
use App\Models\Role;
|
|
use App\Models\Role;
|
|
|
|
+use App\Models\Scopes\CompanyScope;
|
|
use App\Models\User;
|
|
use App\Models\User;
|
|
use Illuminate\Contracts\Encryption\DecryptException;
|
|
use Illuminate\Contracts\Encryption\DecryptException;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Http\Request;
|
|
@@ -75,27 +76,27 @@ class UserController extends Controller
|
|
public function index(Request $request){
|
|
public function index(Request $request){
|
|
$pageSize=$request->get('page_size') ?? 10;
|
|
$pageSize=$request->get('page_size') ?? 10;
|
|
$sort=$request->input('sort','desc');
|
|
$sort=$request->input('sort','desc');
|
|
- //超管能看到所有用户
|
|
|
|
|
|
+
|
|
|
|
+ $users = User::query()->allowed()->with(['department'])->filter($request->all())->orderBy('created_at',$sort)->paginate($pageSize);
|
|
|
|
+
|
|
if(Auth::user()->super_admin){
|
|
if(Auth::user()->super_admin){
|
|
- $user = User::query()->filter($request->all())->with(['department'])->orderBy('created_at',$sort)->paginate($pageSize);
|
|
|
|
- make_display_id($user,$pageSize);
|
|
|
|
- return UserSimpleResource::collection($user);
|
|
|
|
|
|
+ $users->transform(function (User $user) {
|
|
|
|
+ $user->display_id = $user->id;
|
|
|
|
+ return $user;
|
|
|
|
+ });
|
|
|
|
+ return UserSimpleResource::collection($users);
|
|
}
|
|
}
|
|
- //普通管理员能看到自己公司的用户
|
|
|
|
- $user=User::query()
|
|
|
|
- ->where('company_id',Auth::user()->company_id)
|
|
|
|
- ->filter($request->all())->with(['department'])->orderBy('created_at',$sort)->paginate($pageSize);
|
|
|
|
- make_display_id($user,$pageSize);
|
|
|
|
- return UserSimpleResource::collection($user);
|
|
|
|
|
|
+ return UserSimpleResource::collection($users);
|
|
}
|
|
}
|
|
|
|
|
|
public function publicSearch(Request $request){
|
|
public function publicSearch(Request $request){
|
|
$pageSize=$request->get('page_size') ?? 10;
|
|
$pageSize=$request->get('page_size') ?? 10;
|
|
$sort=$request->input('sort','desc');
|
|
$sort=$request->input('sort','desc');
|
|
|
|
+ //这里公共查询如超级管理员在邮件抄送时会看到其他公司用户不合适
|
|
$user=User::query()
|
|
$user=User::query()
|
|
->where('company_id',Auth::user()->company_id)
|
|
->where('company_id',Auth::user()->company_id)
|
|
->filter($request->all())->orderBy('created_at',$sort)->paginate($pageSize);
|
|
->filter($request->all())->orderBy('created_at',$sort)->paginate($pageSize);
|
|
- make_display_id($user,$pageSize);
|
|
|
|
|
|
+
|
|
return UserSimpleResource::collection($user);
|
|
return UserSimpleResource::collection($user);
|
|
}
|
|
}
|
|
|
|
|
|
@@ -153,32 +154,26 @@ class UserController extends Controller
|
|
* @return \Illuminate\Http\Response
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
*/
|
|
public function status(Request $request,string $status){
|
|
public function status(Request $request,string $status){
|
|
- //只能删除自己公司的;超管除外
|
|
|
|
- if (Auth::user()->super_admin){
|
|
|
|
- User::whereIn('id', $request->user_id)->update(['status' => $status]);
|
|
|
|
- }
|
|
|
|
- else{
|
|
|
|
- User::whereIn('id', $request->user_id)->where('company_id',Auth::user()->company_id)->update(['status' => $status]);
|
|
|
|
- }
|
|
|
|
|
|
+ User::query()->allowed()->whereIn('id', $request->user_id)->update(['status' => $status]);
|
|
return $this->created();
|
|
return $this->created();
|
|
}
|
|
}
|
|
|
|
|
|
public function destroy(string $id)
|
|
public function destroy(string $id)
|
|
{
|
|
{
|
|
- $user = User::query()->findOrFail($id);
|
|
|
|
|
|
+ $user = User::query()->allowed()->findOrFail($id);
|
|
$user->delete();
|
|
$user->delete();
|
|
return $this->noContent();
|
|
return $this->noContent();
|
|
}
|
|
}
|
|
|
|
|
|
public function show(string $id)
|
|
public function show(string $id)
|
|
{
|
|
{
|
|
- $user = User::query()->findOrFail($id);
|
|
|
|
|
|
+ $user = User::query()->allowed()->findOrFail($id);
|
|
return new UserInfoResource($user);
|
|
return new UserInfoResource($user);
|
|
}
|
|
}
|
|
|
|
|
|
public function update(UpdateRequest $request,string $id)
|
|
public function update(UpdateRequest $request,string $id)
|
|
{
|
|
{
|
|
- $user = User::findOrFail($id);
|
|
|
|
|
|
+ $user = User::allowed()->findOrFail($id);
|
|
$newPassword=null;
|
|
$newPassword=null;
|
|
|
|
|
|
// 如果用户是超级管理员或具有相应权限
|
|
// 如果用户是超级管理员或具有相应权限
|