Merge branch 'login_register' into 'master'

login register front

See merge request CIEFWorldwideSdnBhd/exchange-2.0!13
This commit is contained in:
omair saleh
2020-12-11 04:26:12 +00:00
36 changed files with 1837 additions and 24 deletions
@@ -63,6 +63,7 @@ class AuthenticateUserLogic extends AbstractControllerLogic
return $this->response(['access_token' => $token, 'redirect_url' => $this->authenticationRedirect->url()]);
} catch (\Exception $exception){
dd($exception);
throw new ErrorException($exception->getMessage(), $exception->getCode());
}
@@ -0,0 +1,59 @@
<?php
namespace App\Classes\Modules\Accounts\ControllersLogic;
use App\Classes\Modules\Accounts\DataTransferObjects\AuthenticationCredentialsObject;
use App\Classes\Modules\Accounts\Services\AuthenticatesUser;
use App\Classes\Modules\Accounts\Services\AuthenticationRedirect;
use App\Classes\Modules\Accounts\Services\FetchesUser;
use App\Classes\Modules\Accounts\Standards\Rules\CanAuthenticateUser;
use App\Classes\General\Abstracts\AbstractControllerLogic;
use App\Classes\ValueObjects\Constants\Notifications;
use ErrorException;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class CheckEmailLogic extends AbstractControllerLogic
{
protected function notification():array {
return [
'title' => 'User found',
'message' => 'Account Already Exists'
];
}
/** @var FetchesUser */
private $fetchesUser;
/**
* CheckEmailLogic constructor.
* @param FetchesUser $fetchesUser
*/
public function __construct(FetchesUser $fetchesUser)
{
$this->fetchesUser = $fetchesUser;
}
/**
* @param Request $request
* @return JsonResponse
* @throws ErrorException
*/
protected function logic(Request $request): JsonResponse {
try {
$this->fetchesUser->execute(['email' => $request->input('email')]);
return $this->response();
} catch (\Exception $exception){
throw new ErrorException($exception->getMessage(), $exception->getCode());
}
}
}
@@ -0,0 +1,65 @@
<?php
namespace App\Classes\Modules\Accounts\ControllersLogic;
use App\Classes\Modules\Accounts\Services\ListsUsers;
use App\Classes\Modules\Accounts\Standards\Rules\CanListUsers;
use App\Classes\General\Abstracts\AbstractControllerLogic;
use App\Http\Resources\UserResource;
use ErrorException;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\Request;
class ListUsersLogic extends AbstractControllerLogic
{
/**
* @return array
*/
protected function notification():array {
return [
'title' => 'List Users',
'message' => 'You have successfully retrieved a list of users'
];
}
/** @var CanListUsers */
private $canListUser;
/** @var ListsUsers */
private $listsUsers;
/**
* ListUsersControllerLogic constructor.
* @param CanListUsers $canListUser
* @param ListsUsers $listsUsers
*/
public function __construct(CanListUsers $canListUser, ListsUsers $listsUsers)
{
$this->canListUser = $canListUser;
$this->listsUsers = $listsUsers;
}
/**
* @param Request $request
* @return JsonResponse
* @throws ErrorException
*/
public function logic(Request $request) : JsonResponse
{
try {
$this->canListUser->passes();
$query = $this->listsUsers->execute($this->listsUsers->deserializeFilters($request->input('filters')));
return $this->collectionResponse(UserResource::collection($query));
} catch (\Exception $exception){
throw new ErrorException($exception->getMessage(), $exception->getCode());
}
}
}
@@ -2,11 +2,18 @@
namespace App\Classes\Modules\Accounts\Services;
use App\Classes\ValueObjects\Constants\Roles;
class AuthenticationRedirect
{
public function url(){
return route('dashboard');
if(\Auth::user()->hasRole('Shadow Admin') || \Auth::user()->hasRole('Ultimate Admin')){
return route('dashboard.forwarder');
}
// return route('dashboard.importer', ['id' => Auth()->user()->employers->first()->company->id]);
}
}
@@ -0,0 +1,33 @@
<?php
namespace App\Classes\Modules\Accounts\Services;
use App\Classes\General\Eloquent\AbstractListRecord;
use App\Models\User;
use Illuminate\Database\Eloquent\Builder;
class ListsUsers extends AbstractListRecord
{
/** @var User */
private $repository;
/**
* ListsUsers constructor.
* @param User $repository
*/
public function __construct(User $repository)
{
$this->repository = $repository;
}
/**
* @return Builder
*/
function getRepository(): Builder
{
return $this->repository->newQuery();
}
}
@@ -0,0 +1,46 @@
<?php
namespace App\Classes\Modules\Accounts\Standards\Rules;
use App\Classes\General\Abstracts\AbstractRule;
use App\Classes\Exceptions\RequestValidationException;
use App\Classes\Exceptions\ResourceNotFoundException;
use App\Classes\Modules\Accounts\DataTransferObjects\PasswordResetObject;
use App\Classes\Modules\Accounts\Standards\Criteria\PasswordResetTokenExists;
use App\Classes\Modules\Accounts\Standards\Validators\ResetPasswordValidation;
class CanListUsers extends AbstractRule
{
/**
* @return bool
*/
protected function authorized(): bool
{
return true;
}
/**
* @param PasswordResetObject $object
* @return bool
*/
protected function validators($object): bool
{
return true;
}
/**
* @param PasswordResetObject $object
* @return bool
*/
protected function criteria($object): bool
{
return true;
}
}