70 lines
2.0 KiB
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
|
|
]);
|
|
}
|
|
}
|