akaunting 3.0 (the last dance)
This commit is contained in:
@ -36,7 +36,7 @@ class Login extends Controller
|
||||
public function store(Request $request)
|
||||
{
|
||||
// Attempt to login
|
||||
if (!auth()->attempt($request->only('email', 'password'), $request->get('remember', false))) {
|
||||
if (! auth()->attempt($request->only('email', 'password'), $request->get('remember', false))) {
|
||||
return response()->json([
|
||||
'status' => null,
|
||||
'success' => false,
|
||||
@ -51,7 +51,7 @@ class Login extends Controller
|
||||
$user = user();
|
||||
|
||||
// Check if user is enabled
|
||||
if (!$user->enabled) {
|
||||
if (! $user->enabled) {
|
||||
$this->logout();
|
||||
|
||||
return response()->json([
|
||||
@ -69,7 +69,7 @@ class Login extends Controller
|
||||
});
|
||||
|
||||
// Logout if no company assigned
|
||||
if (!$company) {
|
||||
if (! $company) {
|
||||
$this->logout();
|
||||
|
||||
return response()->json([
|
||||
@ -95,7 +95,7 @@ class Login extends Controller
|
||||
'status' => null,
|
||||
'success' => true,
|
||||
'error' => false,
|
||||
'message' => null,
|
||||
'message' => trans('auth.login_redirect'),
|
||||
'data' => null,
|
||||
'redirect' => url($path),
|
||||
]);
|
||||
@ -108,7 +108,7 @@ class Login extends Controller
|
||||
'status' => null,
|
||||
'success' => true,
|
||||
'error' => false,
|
||||
'message' => null,
|
||||
'message' => trans('auth.login_redirect'),
|
||||
'data' => null,
|
||||
'redirect' => redirect()->intended($url)->getTargetUrl(),
|
||||
]);
|
||||
@ -128,6 +128,9 @@ class Login extends Controller
|
||||
// Session destroy is required if stored in database
|
||||
if (config('session.driver') == 'database') {
|
||||
$request = app('Illuminate\Http\Request');
|
||||
|
||||
$request->session()->invalidate();
|
||||
$request->session()->regenerateToken();
|
||||
$request->session()->getHandler()->destroy($request->session()->getId());
|
||||
}
|
||||
}
|
||||
|
@ -1,130 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Abstracts\Http\Controller;
|
||||
use App\Http\Requests\Auth\Permission as Request;
|
||||
use App\Jobs\Auth\CreatePermission;
|
||||
use App\Jobs\Auth\DeletePermission;
|
||||
use App\Jobs\Auth\UpdatePermission;
|
||||
use App\Models\Auth\Permission;
|
||||
|
||||
class Permissions extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$permissions = Permission::collect();
|
||||
|
||||
return $this->response('auth.permissions.index', compact('permissions'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
return view('auth.permissions.create');
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param Request $request
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
$response = $this->ajaxDispatch(new CreatePermission($request));
|
||||
|
||||
if ($response['success']) {
|
||||
$response['redirect'] = route('permissions.index');
|
||||
|
||||
$message = trans('messages.success.added', ['type' => trans_choice('general.permissions', 1)]);
|
||||
|
||||
flash($message)->success();
|
||||
} else {
|
||||
$response['redirect'] = route('permissions.create');
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param Permission $permission
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function edit(Permission $permission)
|
||||
{
|
||||
return view('auth.permissions.edit', compact('permission'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param Permission $permission
|
||||
* @param Request $request
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function update(Permission $permission, Request $request)
|
||||
{
|
||||
$response = $this->ajaxDispatch(new UpdatePermission($permission, $request));
|
||||
|
||||
if ($response['success']) {
|
||||
$response['redirect'] = route('permissions.index');
|
||||
|
||||
$message = trans('messages.success.updated', ['type' => $permission->display_name]);
|
||||
|
||||
flash($message)->success();
|
||||
} else {
|
||||
$response['redirect'] = route('permissions.edit', $permission->id);
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param Permission $permission
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function destroy(Permission $permission)
|
||||
{
|
||||
$response = $this->ajaxDispatch(new DeletePermission($permission));
|
||||
|
||||
$response['redirect'] = route('permissions.index');
|
||||
|
||||
if ($response['success']) {
|
||||
$message = trans('messages.success.deleted', ['type' => $permission->display_name]);
|
||||
|
||||
flash($message)->success();
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
}
|
||||
}
|
84
app/Http/Controllers/Auth/Register.php
Normal file
84
app/Http/Controllers/Auth/Register.php
Normal file
@ -0,0 +1,84 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Abstracts\Http\Controller;
|
||||
use App\Http\Requests\Auth\Register as Request;
|
||||
use App\Jobs\Auth\DeleteInvitation;
|
||||
use App\Models\Auth\UserInvitation;
|
||||
use Illuminate\Auth\Events\Registered;
|
||||
use Illuminate\Foundation\Auth\RegistersUsers;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class Register extends Controller
|
||||
{
|
||||
use RegistersUsers;
|
||||
|
||||
/**
|
||||
* Where to redirect users after registration.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $redirectTo = '/';
|
||||
|
||||
/**
|
||||
* Create a new controller instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware('guest');
|
||||
}
|
||||
|
||||
public function create($token)
|
||||
{
|
||||
$invitation = UserInvitation::token($token)->first();
|
||||
|
||||
if ($invitation) {
|
||||
return view('auth.register.create', ['token' => $token]);
|
||||
}
|
||||
|
||||
abort(403);
|
||||
}
|
||||
|
||||
public function store(Request $request)
|
||||
{
|
||||
$invitation = UserInvitation::token($request->get('token'))->first();
|
||||
|
||||
$user = $invitation->user;
|
||||
|
||||
$this->dispatch(new DeleteInvitation($invitation));
|
||||
|
||||
event(new Registered($user));
|
||||
|
||||
if ($response = $this->registered($request, $user)) {
|
||||
return $response;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The user has been registered.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @param mixed $user
|
||||
* @return mixed
|
||||
*/
|
||||
protected function registered(Request $request, $user)
|
||||
{
|
||||
$user->forceFill([
|
||||
'password' => $request->password,
|
||||
'remember_token' => Str::random(60),
|
||||
])->save();
|
||||
|
||||
$this->guard()->login($user);
|
||||
|
||||
$message = trans('messages.success.connected', ['type' => trans_choice('general.users', 1)]);
|
||||
|
||||
flash($message)->success();
|
||||
|
||||
return response()->json([
|
||||
'redirect' => url($this->redirectPath()),
|
||||
]);
|
||||
}
|
||||
}
|
@ -90,7 +90,7 @@ class Reset extends Controller
|
||||
});
|
||||
|
||||
// Logout if no company assigned
|
||||
if (!$company) {
|
||||
if (! $company) {
|
||||
$this->guard()->logout();
|
||||
|
||||
return response()->json([
|
||||
|
@ -1,155 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Abstracts\Http\Controller;
|
||||
use App\Http\Requests\Auth\Role as Request;
|
||||
use App\Jobs\Auth\CreateRole;
|
||||
use App\Jobs\Auth\DeleteRole;
|
||||
use App\Jobs\Auth\UpdateRole;
|
||||
use App\Models\Auth\Permission;
|
||||
use App\Models\Auth\Role;
|
||||
|
||||
class Roles extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$roles = Role::collect();
|
||||
|
||||
return $this->response('auth.roles.index', compact('roles'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for viewing the specified resource.
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function show()
|
||||
{
|
||||
return redirect()->route('roles.index');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for creating a new resource.
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
$permissions = [];
|
||||
$actions = ['read', 'create', 'update', 'delete'];
|
||||
|
||||
foreach ($actions as $action) {
|
||||
$permissions[$action] = Permission::action($action)->get()->sortBy('title')->all();
|
||||
}
|
||||
|
||||
return view('auth.roles.create', compact('actions', 'permissions'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param Request $request
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function store(Request $request)
|
||||
{
|
||||
$response = $this->ajaxDispatch(new CreateRole($request));
|
||||
|
||||
if ($response['success']) {
|
||||
$response['redirect'] = route('roles.index');
|
||||
|
||||
$message = trans('messages.success.added', ['type' => trans_choice('general.roles', 1)]);
|
||||
|
||||
flash($message)->success();
|
||||
} else {
|
||||
$response['redirect'] = route('roles.create');
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param Role $role
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function edit(Role $role)
|
||||
{
|
||||
$permissions = [];
|
||||
$actions = ['read', 'create', 'update', 'delete'];
|
||||
|
||||
foreach ($actions as $action) {
|
||||
$permissions[$action] = Permission::action($action)->get()->sortBy('title')->all();
|
||||
}
|
||||
|
||||
return view('auth.roles.edit', compact('role', 'actions', 'permissions'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param Role $role
|
||||
* @param Request $request
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function update(Role $role, Request $request)
|
||||
{
|
||||
$response = $this->ajaxDispatch(new UpdateRole($role, $request));
|
||||
|
||||
if ($response['success']) {
|
||||
$response['redirect'] = route('roles.index');
|
||||
|
||||
$message = trans('messages.success.updated', ['type' => $role->display_name]);
|
||||
|
||||
flash($message)->success();
|
||||
} else {
|
||||
$response['redirect'] = route('roles.edit', $role->id);
|
||||
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove the specified resource from storage.
|
||||
*
|
||||
* @param Role $role
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function destroy(Role $role)
|
||||
{
|
||||
$response = $this->ajaxDispatch(new DeleteRole($role));
|
||||
|
||||
$response['redirect'] = route('roles.index');
|
||||
|
||||
if ($response['success']) {
|
||||
$message = trans('messages.success.deleted', ['type' => $role->display_name]);
|
||||
|
||||
flash($message)->success();
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
}
|
||||
}
|
@ -5,17 +5,19 @@ namespace App\Http\Controllers\Auth;
|
||||
use App\Abstracts\Http\Controller;
|
||||
use App\Events\Auth\LandingPageShowing;
|
||||
use App\Http\Requests\Auth\User as Request;
|
||||
use App\Jobs\Auth\CreateInvitation;
|
||||
use App\Jobs\Auth\CreateUser;
|
||||
use App\Jobs\Auth\DeleteUser;
|
||||
use App\Jobs\Auth\UpdateUser;
|
||||
use App\Models\Auth\User;
|
||||
use App\Models\Auth\Role;
|
||||
use App\Models\Auth\User;
|
||||
use App\Traits\Cloud;
|
||||
use App\Traits\Uploads;
|
||||
use Illuminate\Http\Request as BaseRequest;
|
||||
|
||||
class Users extends Controller
|
||||
{
|
||||
use Uploads;
|
||||
use Cloud, Uploads;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
@ -66,11 +68,13 @@ class Users extends Controller
|
||||
|
||||
$roles = Role::all()->reject(function ($r) {
|
||||
return $r->hasPermission('read-client-portal');
|
||||
});
|
||||
})->pluck('display_name', 'id');
|
||||
|
||||
$companies = user()->companies()->take(setting('default.select_limit'))->get()->sortBy('name')->pluck('name', 'id');
|
||||
|
||||
return view('auth.users.create', compact('roles', 'companies', 'landing_pages'));
|
||||
$roles_url = $this->getCloudRolesPageUrl();
|
||||
|
||||
return view('auth.users.create', compact('roles', 'companies', 'landing_pages', 'roles_url'));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -87,7 +91,7 @@ class Users extends Controller
|
||||
if ($response['success']) {
|
||||
$response['redirect'] = route('users.index');
|
||||
|
||||
$message = trans('messages.success.added', ['type' => trans_choice('general.users', 1)]);
|
||||
$message = trans('messages.success.invited', ['type' => trans_choice('general.users', 1)]);
|
||||
|
||||
flash($message)->success();
|
||||
} else {
|
||||
@ -125,29 +129,33 @@ class Users extends Controller
|
||||
// Show only roles with customer permission
|
||||
$roles = Role::all()->reject(function ($r) {
|
||||
return !$r->hasPermission('read-client-portal');
|
||||
});
|
||||
})->pluck('display_name', 'id');
|
||||
} else {
|
||||
// Don't show roles with customer permission
|
||||
$roles = Role::all()->reject(function ($r) {
|
||||
return $r->hasPermission('read-client-portal');
|
||||
});
|
||||
})->pluck('display_name', 'id');
|
||||
}
|
||||
|
||||
$companies = user()->companies()->take(setting('default.select_limit'))->get()->sortBy('name')->pluck('name', 'id');
|
||||
|
||||
if ($user->company_ids) {
|
||||
foreach($user->company_ids as $company_id) {
|
||||
foreach ($user->company_ids as $company_id) {
|
||||
if ($companies->has($company_id)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$company = \App\Models\Common\Company::find($company_id);
|
||||
$company = company($company_id);
|
||||
|
||||
$companies->put($company->id, $company->name);
|
||||
}
|
||||
}
|
||||
|
||||
return view('auth.users.edit', compact('user', 'companies', 'roles', 'landing_pages'));
|
||||
$roles_url = $this->getCloudRolesPageUrl();
|
||||
|
||||
$route = (request()->route()->getName() == 'profile.edit') ? 'profile.update' : 'users.update';
|
||||
|
||||
return view('auth.users.edit', compact('user', 'companies', 'roles', 'landing_pages', 'roles_url', 'route'));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -297,7 +305,7 @@ class Users extends Controller
|
||||
$column = $request['column'];
|
||||
$value = $request['value'];
|
||||
|
||||
if (!empty($column) && !empty($value)) {
|
||||
if (! empty($column) && ! empty($value)) {
|
||||
switch ($column) {
|
||||
case 'id':
|
||||
$user = User::find((int) $value);
|
||||
@ -310,14 +318,40 @@ class Users extends Controller
|
||||
}
|
||||
|
||||
$data = $user;
|
||||
} elseif (!empty($column) && empty($value)) {
|
||||
} elseif (! empty($column) && empty($value)) {
|
||||
$data = trans('validation.required', ['attribute' => $column]);
|
||||
}
|
||||
|
||||
return response()->json([
|
||||
'errors' => ($user) ? false : true,
|
||||
'success' => ($user) ? true : false,
|
||||
'data' => $data
|
||||
'data' => $data,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Process request for reinviting the specified resource.
|
||||
*
|
||||
* @param User $user
|
||||
*
|
||||
* @return Response
|
||||
*/
|
||||
public function invite(User $user)
|
||||
{
|
||||
$response = $this->ajaxDispatch(new CreateInvitation($user, company()));
|
||||
|
||||
$response['redirect'] = route('users.index');
|
||||
|
||||
if ($response['success']) {
|
||||
$message = trans('messages.success.invited', ['type' => trans_choice('general.users', 1)]);
|
||||
|
||||
flash($message)->success();
|
||||
} else {
|
||||
$message = $response['message'];
|
||||
|
||||
flash($message)->error()->important();
|
||||
}
|
||||
|
||||
return response()->json($response);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user