lk.zachem.info/app/Modules/Admin/Http/Controllers/AdminUsersController.php

70 lines
2.0 KiB
PHP

<?php
namespace Modules\Admin\Http\Controllers;
use Modules\Post\Models\Post;
use Modules\Post\Models\PostCategory;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Modules\User\Models\UserRole;
use Modules\User\Models\Role;
use Modules\User\Models\User;
class AdminUsersController extends Controller
{
public function index(Request $request)
{
$users = User::orderBy('name');
if ($request->role && $request->role != 'all')
{
$users->whereIn(
'id',
UserRole::where('role_id', $request->role)
->get()
->map(function (UserRole $userRole)
{
return $userRole->user_id;
})
);
}
return view('admin::users.index', [
'users' => $users->get(),
'roles' => Role::all(),
'role' => $request->role
]);
}
public function edit(User $user)
{
$roles = UserRole::where('user_id', $user->id)->get();
return view('admin::users.edit', [
'user' => $user,
'userRoles' => $roles,
'roles' => Role::class
]);
}
public function store(Request $request)
{
$data = $request->only('name', 'phone', 'email');
$user = User::create($data);
$password = $user->setForcedPassword(false);
return to_route('admin.users')->withSuccess('Учетная запись для ' . $request->name . ' создана. Пароль пользователя: ' . $password);
}
public function update(Request $request, User $user)
{
$user->update($request->only('name', 'email', 'phone'));
return to_route('admin.users');
}
public function deleteUserRole(UserRole $userRole)
{
$user = User::find($userRole->user_id);
$userRole->delete();
return to_route('admin.users.edit', [
'user' => $user
]);
}
}