first upload all files
This commit is contained in:
70
Modules/User/Http/Controllers/Admin/AuthController.php
Normal file
70
Modules/User/Http/Controllers/Admin/AuthController.php
Normal file
@@ -0,0 +1,70 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\User\Http\Controllers\Admin;
|
||||
|
||||
use Modules\User\Http\Controllers\BaseAuthController;
|
||||
|
||||
class AuthController extends BaseAuthController
|
||||
{
|
||||
/**
|
||||
* Where to redirect users after login..
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function redirectTo()
|
||||
{
|
||||
return route('admin.dashboard.index');
|
||||
}
|
||||
|
||||
/**
|
||||
* The login URL.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function loginUrl()
|
||||
{
|
||||
return route('admin.login');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show login form.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function getLogin()
|
||||
{
|
||||
return view('user::admin.auth.login');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show reset password form.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function getReset()
|
||||
{
|
||||
return view('user::admin.auth.reset.begin');
|
||||
}
|
||||
|
||||
/**
|
||||
* Reset complete form route.
|
||||
*
|
||||
* @param \Modules\User\Entities\User $user
|
||||
* @param string $code
|
||||
* @return string
|
||||
*/
|
||||
protected function resetCompleteRoute($user, $code)
|
||||
{
|
||||
return route('admin.reset.complete', [$user->email, $code]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Password reset complete view.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function resetCompleteView()
|
||||
{
|
||||
return view('user::admin.auth.reset.complete');
|
||||
}
|
||||
}
|
||||
54
Modules/User/Http/Controllers/Admin/ProfileController.php
Normal file
54
Modules/User/Http/Controllers/Admin/ProfileController.php
Normal file
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\User\Http\Controllers\Admin;
|
||||
|
||||
use Modules\Admin\Ui\Facades\TabManager;
|
||||
use Modules\User\Http\Requests\UpdateProfileRequest;
|
||||
|
||||
class ProfileController
|
||||
{
|
||||
/**
|
||||
* Show the form for editing the specified resource.
|
||||
*
|
||||
* @param int $id
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function edit()
|
||||
{
|
||||
$tabs = TabManager::get('profile');
|
||||
|
||||
return view('user::admin.profile.edit', compact('tabs'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param \Modules\User\Http\Requests\UpdateProfileRequest $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update(UpdateProfileRequest $request)
|
||||
{
|
||||
$this->bcryptPassword($request);
|
||||
|
||||
auth()->user()->update($request->all());
|
||||
|
||||
return back()->withSuccess(trans('admin::messages.resource_saved', [
|
||||
'resource' => trans('user::users.profile'),
|
||||
]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Bcrypt user password.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return void
|
||||
*/
|
||||
private function bcryptPassword($request)
|
||||
{
|
||||
if ($request->filled('password')) {
|
||||
return $request->merge(['password' => bcrypt($request->password)]);
|
||||
}
|
||||
|
||||
unset($request['password']);
|
||||
}
|
||||
}
|
||||
40
Modules/User/Http/Controllers/Admin/RoleController.php
Normal file
40
Modules/User/Http/Controllers/Admin/RoleController.php
Normal file
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\User\Http\Controllers\Admin;
|
||||
|
||||
use Modules\User\Entities\Role;
|
||||
use Modules\Admin\Traits\HasCrudActions;
|
||||
use Modules\User\Http\Requests\SaveRoleRequest;
|
||||
|
||||
class RoleController
|
||||
{
|
||||
use HasCrudActions;
|
||||
|
||||
/**
|
||||
* Model for the resource.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $model = Role::class;
|
||||
|
||||
/**
|
||||
* Label of the resource.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $label = 'user::roles.role';
|
||||
|
||||
/**
|
||||
* View path of the resource.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $viewPath = 'user::admin.roles';
|
||||
|
||||
/**
|
||||
* Form requests for the resource.
|
||||
*
|
||||
* @var array|string
|
||||
*/
|
||||
protected $validation = SaveRoleRequest::class;
|
||||
}
|
||||
94
Modules/User/Http/Controllers/Admin/UserController.php
Normal file
94
Modules/User/Http/Controllers/Admin/UserController.php
Normal file
@@ -0,0 +1,94 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\User\Http\Controllers\Admin;
|
||||
|
||||
use Modules\User\Entities\User;
|
||||
use Modules\Admin\Traits\HasCrudActions;
|
||||
use Modules\User\Http\Requests\SaveUserRequest;
|
||||
use Cartalyst\Sentinel\Laravel\Facades\Activation;
|
||||
|
||||
class UserController
|
||||
{
|
||||
use HasCrudActions;
|
||||
|
||||
/**
|
||||
* Model for the resource.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $model = User::class;
|
||||
|
||||
/**
|
||||
* Label of the resource.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $label = 'user::users.user';
|
||||
|
||||
/**
|
||||
* View path of the resource.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $viewPath = 'user::admin.users';
|
||||
|
||||
/**
|
||||
* Form requests for the resource.
|
||||
*
|
||||
* @var array|string
|
||||
*/
|
||||
protected $validation = SaveUserRequest::class;
|
||||
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Modules\User\Http\Requests\SaveUserRequest $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store(SaveUserRequest $request)
|
||||
{
|
||||
$request->merge(['password' => bcrypt($request->password)]);
|
||||
|
||||
$user = User::create($request->all());
|
||||
|
||||
$user->roles()->attach($request->roles);
|
||||
|
||||
Activation::complete($user, Activation::create($user)->code);
|
||||
|
||||
return redirect()->route('admin.users.index')
|
||||
->withSuccess(trans('admin::messages.resource_saved', ['resource' => trans('user::users.user')]));
|
||||
}
|
||||
|
||||
/**
|
||||
* Update the specified resource in storage.
|
||||
*
|
||||
* @param int $id
|
||||
* @param \Modules\User\Http\Requests\SaveUserRequest $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function update($id, SaveUserRequest $request)
|
||||
{
|
||||
$user = User::findOrFail($id);
|
||||
|
||||
if (is_null($request->password)) {
|
||||
unset($request['password']);
|
||||
} else {
|
||||
$request->merge(['password' => bcrypt($request->password)]);
|
||||
}
|
||||
|
||||
$user->update($request->all());
|
||||
|
||||
$user->roles()->sync($request->roles);
|
||||
|
||||
if (! Activation::completed($user) && $request->activated === '1') {
|
||||
Activation::complete($user, Activation::create($user)->code);
|
||||
}
|
||||
|
||||
if (Activation::completed($user) && $request->activated === '0') {
|
||||
Activation::remove($user);
|
||||
}
|
||||
|
||||
return redirect()->route('admin.users.index')
|
||||
->withSuccess(trans('admin::messages.resource_saved', ['resource' => trans('user::users.user')]));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\User\Http\Controllers\Admin;
|
||||
|
||||
use Modules\User\Entities\User;
|
||||
use Illuminate\Support\Facades\Mail;
|
||||
use Modules\User\Mail\ResetPasswordEmail;
|
||||
use Modules\User\Contracts\Authentication;
|
||||
|
||||
class UserResetPasswordController
|
||||
{
|
||||
/**
|
||||
* Store a newly created resource in storage.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function store($id, Authentication $auth)
|
||||
{
|
||||
$user = User::findOrFail($id);
|
||||
|
||||
$code = $auth->createReminderCode($user);
|
||||
|
||||
Mail::to($user)
|
||||
->send(new ResetPasswordEmail($user, $this->getResetCompleteURL($user, $code)));
|
||||
|
||||
return redirect()->route('admin.users.index')
|
||||
->withSuccess(trans('user::messages.users.reset_password_email_sent'));
|
||||
}
|
||||
|
||||
private function getResetCompleteURL($user, $code)
|
||||
{
|
||||
return route('admin.reset.complete', [$user->email, $code]);
|
||||
}
|
||||
}
|
||||
165
Modules/User/Http/Controllers/AuthController.php
Normal file
165
Modules/User/Http/Controllers/AuthController.php
Normal file
@@ -0,0 +1,165 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\User\Http\Controllers;
|
||||
|
||||
use Exception;
|
||||
use Modules\Page\Entities\Page;
|
||||
use Modules\User\Entities\User;
|
||||
use Modules\User\LoginProvider;
|
||||
use Illuminate\Support\Facades\Cache;
|
||||
use Laravel\Socialite\Facades\Socialite;
|
||||
|
||||
class AuthController extends BaseAuthController
|
||||
{
|
||||
/**
|
||||
* Where to redirect users after login..
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function redirectTo()
|
||||
{
|
||||
return route('account.dashboard.index');
|
||||
}
|
||||
|
||||
/**
|
||||
* The login URL.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function loginUrl()
|
||||
{
|
||||
return route('login');
|
||||
}
|
||||
|
||||
/**
|
||||
* Show login form.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function getLogin()
|
||||
{
|
||||
return view('public.auth.login', [
|
||||
'providers' => LoginProvider::enabled(),
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Redirect the user to the given provider authentication page.
|
||||
*
|
||||
* @param string $provider
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function redirectToProvider($provider)
|
||||
{
|
||||
if (! LoginProvider::isEnable($provider)) {
|
||||
abort(404);
|
||||
}
|
||||
|
||||
return Socialite::driver($provider)->redirect();
|
||||
}
|
||||
|
||||
/**
|
||||
* Obtain the user information from the given provider.
|
||||
*
|
||||
* @param string $provider
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function handleProviderCallback($provider)
|
||||
{
|
||||
if (! LoginProvider::isEnable($provider)) {
|
||||
abort(404);
|
||||
}
|
||||
|
||||
try {
|
||||
$user = Socialite::driver($provider)->user();
|
||||
} catch (Exception $e) {
|
||||
return redirect()->route('login')->with('error', $e->getMessage());
|
||||
}
|
||||
|
||||
if (User::registered($user->getEmail())) {
|
||||
auth()->login(
|
||||
User::findByEmail($user->getEmail())
|
||||
);
|
||||
|
||||
return redirect($this->redirectTo());
|
||||
}
|
||||
|
||||
[$firstName, $lastName] = $this->extractName($user->getName());
|
||||
|
||||
$registeredUser = $this->auth->registerAndActivate([
|
||||
'first_name' => $firstName,
|
||||
'last_name' => $lastName,
|
||||
'email' => $user->getEmail(),
|
||||
'phone' => '',
|
||||
'password' => str_random(),
|
||||
]);
|
||||
|
||||
$this->assignCustomerRole($registeredUser);
|
||||
|
||||
auth()->login($registeredUser);
|
||||
|
||||
return redirect($this->redirectTo());
|
||||
}
|
||||
|
||||
private function extractName($name)
|
||||
{
|
||||
return explode(' ', $name, 2);
|
||||
}
|
||||
|
||||
/**
|
||||
* Show registrations form.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function getRegister()
|
||||
{
|
||||
return view('public.auth.register', [
|
||||
'privacyPageUrl' => $this->getPrivacyPageUrl(),
|
||||
'providers' => LoginProvider::enabled(),
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get privacy page url.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
private function getPrivacyPageUrl()
|
||||
{
|
||||
return Cache::tags('settings')->rememberForever('privacy_page_url', function () {
|
||||
return Page::urlForPage(setting('storefront_privacy_page'));
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Show reset password form.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function getReset()
|
||||
{
|
||||
return view('public.auth.reset.begin');
|
||||
}
|
||||
|
||||
/**
|
||||
* Reset complete form route.
|
||||
*
|
||||
* @param \Modules\User\Entities\User $user
|
||||
* @param string $code
|
||||
* @return string
|
||||
*/
|
||||
protected function resetCompleteRoute($user, $code)
|
||||
{
|
||||
return route('reset.complete', [$user->email, $code]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Password reset complete view.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function resetCompleteView()
|
||||
{
|
||||
return view('public.auth.reset.complete');
|
||||
}
|
||||
}
|
||||
232
Modules/User/Http/Controllers/BaseAuthController.php
Normal file
232
Modules/User/Http/Controllers/BaseAuthController.php
Normal file
@@ -0,0 +1,232 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\User\Http\Controllers;
|
||||
|
||||
use Modules\User\Entities\Role;
|
||||
use Modules\User\Entities\User;
|
||||
use Illuminate\Routing\Controller;
|
||||
use Illuminate\Support\Facades\Mail;
|
||||
use Modules\User\Mail\ResetPasswordEmail;
|
||||
use Modules\User\Contracts\Authentication;
|
||||
use Modules\User\Events\CustomerRegistered;
|
||||
use Modules\User\Http\Requests\LoginRequest;
|
||||
use Modules\User\Http\Requests\RegisterRequest;
|
||||
use Modules\User\Http\Requests\PasswordResetRequest;
|
||||
use Modules\User\Http\Requests\ResetCompleteRequest;
|
||||
use Cartalyst\Sentinel\Checkpoints\ThrottlingException;
|
||||
use Cartalyst\Sentinel\Checkpoints\NotActivatedException;
|
||||
|
||||
abstract class BaseAuthController extends Controller
|
||||
{
|
||||
/**
|
||||
* The Authentication instance.
|
||||
*
|
||||
* @var \Modules\User\Contracts\Authentication
|
||||
*/
|
||||
protected $auth;
|
||||
|
||||
/**
|
||||
* @param \Modules\User\Contracts\Authentication $auth
|
||||
*/
|
||||
public function __construct(Authentication $auth)
|
||||
{
|
||||
$this->auth = $auth;
|
||||
|
||||
$this->middleware('guest')->except('getLogout');
|
||||
}
|
||||
|
||||
/**
|
||||
* Where to redirect users after login..
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
abstract protected function redirectTo();
|
||||
|
||||
/**
|
||||
* The login route.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
abstract protected function loginUrl();
|
||||
|
||||
/**
|
||||
* Show login form.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
abstract public function getLogin();
|
||||
|
||||
/**
|
||||
* Show reset password form.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
abstract public function getReset();
|
||||
|
||||
/**
|
||||
* Login a user.
|
||||
*
|
||||
* @param \Modules\User\Http\Requests\LoginRequest $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function postLogin(LoginRequest $request)
|
||||
{
|
||||
try {
|
||||
$loggedIn = $this->auth->login([
|
||||
'email' => $request->email,
|
||||
'password' => $request->password,
|
||||
], (bool) $request->get('remember_me', false));
|
||||
|
||||
if (! $loggedIn) {
|
||||
return back()->withInput()
|
||||
->withError(trans('user::messages.users.invalid_credentials'));
|
||||
}
|
||||
|
||||
return redirect()->intended($this->redirectTo());
|
||||
} catch (NotActivatedException $e) {
|
||||
return back()->withInput()
|
||||
->withError(trans('user::messages.users.account_not_activated'));
|
||||
} catch (ThrottlingException $e) {
|
||||
return back()->withInput()
|
||||
->withError(trans('user::messages.users.account_is_blocked', ['delay' => $e->getDelay()]));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Logout current user.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function getLogout()
|
||||
{
|
||||
$this->auth->logout();
|
||||
|
||||
return redirect($this->loginUrl());
|
||||
}
|
||||
|
||||
/**
|
||||
* Register a user.
|
||||
*
|
||||
* @param \Modules\User\Http\Requests\RegisterRequest $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function postRegister(RegisterRequest $request)
|
||||
{
|
||||
$user = $this->auth->registerAndActivate($request->only([
|
||||
'first_name',
|
||||
'last_name',
|
||||
'email',
|
||||
'phone',
|
||||
'password',
|
||||
]));
|
||||
|
||||
$this->assignCustomerRole($user);
|
||||
|
||||
event(new CustomerRegistered($user));
|
||||
|
||||
return redirect($this->loginUrl())
|
||||
->withSuccess(trans('user::messages.users.account_created'));
|
||||
}
|
||||
|
||||
protected function assignCustomerRole($user)
|
||||
{
|
||||
$role = Role::findOrNew(setting('customer_role'));
|
||||
|
||||
if ($role->exists) {
|
||||
$this->auth->assignRole($user, $role);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Start the reset password process.
|
||||
*
|
||||
* @param \Modules\User\Http\Requests\PasswordResetRequest $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function postReset(PasswordResetRequest $request)
|
||||
{
|
||||
$user = User::where('email', $request->email)->first();
|
||||
|
||||
if (is_null($user)) {
|
||||
return back()->withInput()
|
||||
->withError(trans('user::messages.users.no_user_found'));
|
||||
}
|
||||
|
||||
$code = $this->auth->createReminderCode($user);
|
||||
|
||||
Mail::to($user)
|
||||
->send(new ResetPasswordEmail($user, $this->resetCompleteRoute($user, $code)));
|
||||
|
||||
return back()->withSuccess(trans('user::messages.users.check_email_to_reset_password'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Reset complete form route.
|
||||
*
|
||||
* @param \Modules\User\Entities\User $user
|
||||
* @param string $code
|
||||
* @return string
|
||||
*/
|
||||
abstract protected function resetCompleteRoute($user, $code);
|
||||
|
||||
/**
|
||||
* Password reset complete view.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
abstract protected function resetCompleteView();
|
||||
|
||||
/**
|
||||
* Show reset password complete form.
|
||||
*
|
||||
* @param string $email
|
||||
* @param string $code
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function getResetComplete($email, $code)
|
||||
{
|
||||
$user = User::where('email', $email)->firstOrFail();
|
||||
|
||||
if ($this->invalidResetCode($user, $code)) {
|
||||
return redirect()->route('reset')
|
||||
->withError(trans('user::messages.users.invalid_reset_code'));
|
||||
}
|
||||
|
||||
return $this->resetCompleteView()->with(compact('user', 'code'));
|
||||
}
|
||||
|
||||
/**
|
||||
* Determine the given reset code is invalid.
|
||||
*
|
||||
* @param \Modules\User\Entities\User $user
|
||||
* @param string $code
|
||||
* @return bool
|
||||
*/
|
||||
private function invalidResetCode($user, $code)
|
||||
{
|
||||
return $user->reminders()->where('code', $code)->doesntExist();
|
||||
}
|
||||
|
||||
/**
|
||||
* Complete the reset password process.
|
||||
*
|
||||
* @param string $email
|
||||
* @param string $code
|
||||
* @param \Modules\User\Http\Requests\ResetCompleteRequest $request
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function postResetComplete($email, $code, ResetCompleteRequest $request)
|
||||
{
|
||||
$user = User::where('email', $email)->firstOrFail();
|
||||
|
||||
$completed = $this->auth->completeResetPassword($user, $code, $request->new_password);
|
||||
|
||||
if (! $completed) {
|
||||
return back()->withInput()
|
||||
->withError(trans('user::messages.users.invalid_reset_code'));
|
||||
}
|
||||
|
||||
return redirect($this->loginUrl())
|
||||
->withSuccess(trans('user::messages.users.password_has_been_reset'));
|
||||
}
|
||||
}
|
||||
28
Modules/User/Http/Requests/LoginRequest.php
Normal file
28
Modules/User/Http/Requests/LoginRequest.php
Normal file
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\User\Http\Requests;
|
||||
|
||||
use Modules\Core\Http\Requests\Request;
|
||||
|
||||
class LoginRequest extends Request
|
||||
{
|
||||
/**
|
||||
* Available attributes for users.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $availableAttributes = 'user::attributes.users';
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
'email' => 'required|email',
|
||||
'password' => 'required',
|
||||
];
|
||||
}
|
||||
}
|
||||
27
Modules/User/Http/Requests/PasswordResetRequest.php
Normal file
27
Modules/User/Http/Requests/PasswordResetRequest.php
Normal file
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\User\Http\Requests;
|
||||
|
||||
use Modules\Core\Http\Requests\Request;
|
||||
|
||||
class PasswordResetRequest extends Request
|
||||
{
|
||||
/**
|
||||
* Available attributes.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $availableAttributes = 'user::attributes.users';
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
'email' => 'required|email',
|
||||
];
|
||||
}
|
||||
}
|
||||
33
Modules/User/Http/Requests/RegisterRequest.php
Normal file
33
Modules/User/Http/Requests/RegisterRequest.php
Normal file
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\User\Http\Requests;
|
||||
|
||||
use Modules\Core\Http\Requests\Request;
|
||||
|
||||
class RegisterRequest extends Request
|
||||
{
|
||||
/**
|
||||
* Available attributes.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $availableAttributes = 'user::attributes.users';
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
'first_name' => ['required'],
|
||||
'last_name' => ['required'],
|
||||
'email' => ['required', 'email', 'unique:users'],
|
||||
'phone' => ['required'],
|
||||
'password' => ['required', 'confirmed', 'min:6'],
|
||||
'captcha' => ['required', 'captcha'],
|
||||
'privacy_policy' => ['accepted'],
|
||||
];
|
||||
}
|
||||
}
|
||||
28
Modules/User/Http/Requests/ResetCompleteRequest.php
Normal file
28
Modules/User/Http/Requests/ResetCompleteRequest.php
Normal file
@@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\User\Http\Requests;
|
||||
|
||||
use Modules\Core\Http\Requests\Request;
|
||||
|
||||
class ResetCompleteRequest extends Request
|
||||
{
|
||||
/**
|
||||
* Available attributes.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $availableAttributes = 'user::attributes.users';
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
'new_password' => 'required|confirmed|min:6',
|
||||
'new_password_confirmation' => 'required',
|
||||
];
|
||||
}
|
||||
}
|
||||
27
Modules/User/Http/Requests/SaveRoleRequest.php
Normal file
27
Modules/User/Http/Requests/SaveRoleRequest.php
Normal file
@@ -0,0 +1,27 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\User\Http\Requests;
|
||||
|
||||
use Modules\Core\Http\Requests\Request;
|
||||
|
||||
class SaveRoleRequest extends Request
|
||||
{
|
||||
/**
|
||||
* Available attributes.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $availableAttributes = 'user::attributes.roles';
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
'name' => 'required',
|
||||
];
|
||||
}
|
||||
}
|
||||
46
Modules/User/Http/Requests/SaveUserRequest.php
Normal file
46
Modules/User/Http/Requests/SaveUserRequest.php
Normal file
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\User\Http\Requests;
|
||||
|
||||
use Illuminate\Validation\Rule;
|
||||
use Modules\Core\Http\Requests\Request;
|
||||
|
||||
class SaveUserRequest extends Request
|
||||
{
|
||||
/**
|
||||
* Available attributes.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $availableAttributes = 'user::attributes.users';
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
'first_name' => 'required',
|
||||
'last_name' => 'required',
|
||||
'email' => ['required', 'email', $this->emailUniqueRule()],
|
||||
'phone' => ['required'],
|
||||
'password' => 'nullable|confirmed|min:6',
|
||||
'roles' => ['required', Rule::exists('roles', 'id')],
|
||||
];
|
||||
}
|
||||
|
||||
private function emailUniqueRule()
|
||||
{
|
||||
$rule = Rule::unique('users');
|
||||
|
||||
if ($this->route()->getName() === 'admin.users.update') {
|
||||
$userId = $this->route()->parameter('id');
|
||||
|
||||
return $rule->ignore($userId);
|
||||
}
|
||||
|
||||
return $rule;
|
||||
}
|
||||
}
|
||||
46
Modules/User/Http/Requests/UpdateProfileRequest.php
Normal file
46
Modules/User/Http/Requests/UpdateProfileRequest.php
Normal file
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\User\Http\Requests;
|
||||
|
||||
use Illuminate\Validation\Rule;
|
||||
use Modules\Core\Http\Requests\Request;
|
||||
|
||||
class UpdateProfileRequest extends Request
|
||||
{
|
||||
/**
|
||||
* Available attributes.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $availableAttributes = 'user::attributes.users';
|
||||
|
||||
/**
|
||||
* Get the validation rules that apply to the request.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
'email' => ['required', Rule::unique('users')->ignore($this->email, 'email')],
|
||||
'phone' => ['required'],
|
||||
'first_name' => ['required'],
|
||||
'last_name' => ['required'],
|
||||
'password' => ['nullable', 'confirmed', 'min:6'],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Hash the user password against the bcrypt algorithm.
|
||||
*
|
||||
* @return $this|null
|
||||
*/
|
||||
public function bcryptPassword()
|
||||
{
|
||||
if ($this->filled('password')) {
|
||||
return $this->merge(['password' => bcrypt($this->password)]);
|
||||
}
|
||||
|
||||
unset($this['password']);
|
||||
}
|
||||
}
|
||||
17
Modules/User/Http/ViewComposers/CurrentUserComposer.php
Normal file
17
Modules/User/Http/ViewComposers/CurrentUserComposer.php
Normal file
@@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
namespace Modules\User\Http\ViewComposers;
|
||||
|
||||
class CurrentUserComposer
|
||||
{
|
||||
/**
|
||||
* Bind data to the view.
|
||||
*
|
||||
* @param \Illuminate\View\View $view
|
||||
* @return void
|
||||
*/
|
||||
public function compose($view)
|
||||
{
|
||||
$view->with('currentUser', auth()->user());
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user