* * @version 1.0.0 */ class UserController extends Controller { /** * Listar */ public function index() { $users = User::orderBy('name'); QuerySupport::queryByKeys($users, ['name', 'email']); return ApiResponse::OK->response([ 'users' => $users->paginate(config('app.pagination')) ]); } /** * Almacenar */ public function store(UserStoreRequest $request) { $user = User::create($request->all()); if ($request->has('roles')) { $user->roles()->sync($request->roles); } return ApiResponse::OK->response(); } /** * Mostrar */ public function show(User $user) { return ApiResponse::OK->response([ 'user' => $user ]); } /** * Actualizar */ public function update(UserUpdateRequest $request, User $user) { $user->update($request->all()); return ApiResponse::OK->response(); } /** * Eliminar */ public function destroy(User $user) { $user->delete(); return ApiResponse::OK->response(); } /** * Permisos del usuario */ public function permissions(User $user) { return ApiResponse::OK->response([ 'permissions' => $user->getAllPermissions() ]); } /** * Roles del usuario */ public function roles(User $user) { return ApiResponse::OK->response([ 'roles' => $user ->roles() ->select('id', 'name', 'description') ->get() ]); } /** * Actualizar roles */ public function updateRoles(Request $request, User $user) { if ($request->has('roles')) { $user->roles()->sync($request->roles); } return ApiResponse::OK->response(); } /** * Actualizar contraseña */ public function updatePassword(PasswordUpdateRequest $request, User $user) { $user->update([ 'password' => bcrypt($request->password) ]); return ApiResponse::OK->response(); } }