Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
webbingbrasil/users-module / Http / Controllers / Admin / UsersController.php
Size: Mime:
<?php namespace Modules\Users\Http\Controllers\Admin;

use Modules\Core\Http\Controllers\AdminController;
use Modules\Core\Services\Asset;
use Modules\Users\Contracts\Repositories\RoleRepository;
use Modules\Users\Contracts\Repositories\UserRepository;
use Modules\Users\Http\Requests\CreateUserRequest;
use Modules\Users\Http\Requests\UpdateUserRequest;
use Modules\Users\Services\UsersDataTable;

class UsersController extends AdminController
{

    /**
     * @var UserRepository
     */
    private $user;

    /**
     * @var RoleRepository
     */
    private $role;

    public function __construct(UserRepository $user, RoleRepository $role)
    {
        parent::__construct();

        $this->user = $user;
        $this->role = $role;

        Asset::add(config('core.assets.datatable'));
        Asset::add(config('core.assets.moment'));
        Asset::add(config('core.assets.daterange'));
    }

    public function index(UsersDataTable $dataTable)
    {
        return $dataTable->render('users::admin.index');
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Response
     */
    public function create()
    {
        $roles = $this->role->all();
        return view('users::admin.create', compact('roles'));
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  CreateUserRequest $request
     * @return \Response
     */
    public function store(CreateUserRequest $request)
    {
        $this->user->createWithRoles($request->except('roles'), $request->get('roles'));
        flash(trans('users::users.messages.created'));
        return redirect()->route('admin.users.index');
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int $id
     * @return \Response
     */
    public function edit($id)
    {
        if (!$user = $this->user->find($id)) {
            flash()->error(trans('users::users.messages.not_found'));
            return redirect()->route('admin.users.index');
        }
        $roles = $this->role->all();
        $currentUser = \Auth::check() ? true : false;
        return view('users::admin.edit', compact('user', 'roles', 'currentUser'));
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  int $id
     * @param  UpdateUserRequest $request
     * @return \Response
     */
    public function update($id, UpdateUserRequest $request)
    {
        $this->user->updateAndSyncRoles($id, $request->except(['roles', 'permissions']), $request->get('roles'));
        flash(trans('users::users.messages.updated'));
        return redirect()->route('admin.users.index');
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int $id
     * @return \Response
     */
    public function destroy($id)
    {
        $this->user->delete($id);
        flash(trans('users::users.messages.deleted'));
        if (request()->ajax() || request()->wantsJson()) {
            return [
                'success' => true,
            ];
        } else {
            return redirect()->route('admin.users.index');
        }
    }
}