From cd909d909e26a09625c061700ef9596cb53128a4 Mon Sep 17 00:00:00 2001 From: denisdulici Date: Sat, 7 Oct 2017 23:52:34 +0300 Subject: [PATCH] added enable option --- app/Http/Controllers/Auth/Login.php | 20 ++++++-- app/Models/Auth/User.php | 26 +++++++--- app/Models/Setting/Category.php | 3 -- ...17_09_01_000000_create_companies_table.php | 2 +- resources/lang/en-GB/auth.php | 1 + resources/views/auth/users/create.blade.php | 7 ++- resources/views/auth/users/edit.blade.php | 7 ++- resources/views/auth/users/index.blade.php | 50 +++++++++++++------ .../companies/companies/create.blade.php | 5 ++ .../views/companies/companies/edit.blade.php | 5 ++ .../views/companies/companies/index.blade.php | 10 +++- 11 files changed, 106 insertions(+), 30 deletions(-) diff --git a/app/Http/Controllers/Auth/Login.php b/app/Http/Controllers/Auth/Login.php index 774ece621..386460fcc 100644 --- a/app/Http/Controllers/Auth/Login.php +++ b/app/Http/Controllers/Auth/Login.php @@ -49,14 +49,28 @@ class Login extends Controller public function store() { + // Attempt to login if (!auth()->attempt(request(['email', 'password']))) { - flash('Please check your credentials and try again.')->error(); + flash(trans('auth.failed'))->error(); return back(); } - if (auth()->user()->customer) { - return redirect('/customers'); + // Get user object + $user = auth()->user(); + + // Check if user is enabled + if (!$user->enabled) { + auth()->logout(); + + flash(trans('auth.disabled'))->error(); + + return redirect('auth/login'); + } + + // Check if is customer + if ($user->customer) { + return redirect('customers'); } return redirect('/'); diff --git a/app/Models/Auth/User.php b/app/Models/Auth/User.php index 6dea23a2e..a8c980ce7 100644 --- a/app/Models/Auth/User.php +++ b/app/Models/Auth/User.php @@ -17,11 +17,7 @@ use Route; class User extends Authenticatable { - use LaratrustUserTrait; - use Notifiable; - use SoftDeletes; - use Filterable; - use Sortable; + use Filterable, LaratrustUserTrait, Notifiable, SoftDeletes, Sortable; protected $table = 'users'; @@ -30,7 +26,7 @@ class User extends Authenticatable * * @var array */ - protected $fillable = ['name', 'email', 'password', 'locale', 'picture']; + protected $fillable = ['name', 'email', 'password', 'locale', 'picture', 'enabled']; /** * The attributes that should be hidden for arrays. @@ -46,6 +42,13 @@ class User extends Authenticatable */ protected $dates = ['last_logged_in_at', 'created_at', 'updated_at', 'deleted_at']; + /** + * Sortable columns. + * + * @var array + */ + public $sortable = ['name', 'email', 'enabled']; + public function companies() { return $this->morphToMany('App\Models\Company\Company', 'user', 'user_companies', 'user_id', 'company_id'); @@ -178,4 +181,15 @@ class User extends Authenticatable return $this->filter($input)->sortable($sort)->paginate($limit); } + + /** + * Scope to only include active currencies. + * + * @param \Illuminate\Database\Eloquent\Builder $query + * @return \Illuminate\Database\Eloquent\Builder + */ + public function scopeEnabled($query) + { + return $query->where('enabled', 1); + } } diff --git a/app/Models/Setting/Category.php b/app/Models/Setting/Category.php index 5bad536aa..1cfc262c1 100644 --- a/app/Models/Setting/Category.php +++ b/app/Models/Setting/Category.php @@ -3,9 +3,6 @@ namespace App\Models\Setting; use App\Models\Model; -use App\Models\Item\Item; -use App\Models\Expense\Payment; -use App\Models\Income\Revenue; class Category extends Model { diff --git a/database/migrations/2017_09_01_000000_create_companies_table.php b/database/migrations/2017_09_01_000000_create_companies_table.php index 950011a5e..6606fb16d 100644 --- a/database/migrations/2017_09_01_000000_create_companies_table.php +++ b/database/migrations/2017_09_01_000000_create_companies_table.php @@ -15,7 +15,7 @@ class CreateCompaniesTable extends Migration Schema::create('companies', function (Blueprint $table) { $table->increments('id'); $table->string('domain'); - $table->boolean('enabled')->default(0); + $table->boolean('enabled')->default(1); $table->timestamps(); $table->softDeletes(); }); diff --git a/resources/lang/en-GB/auth.php b/resources/lang/en-GB/auth.php index f5e35153a..d739ca0cd 100644 --- a/resources/lang/en-GB/auth.php +++ b/resources/lang/en-GB/auth.php @@ -24,6 +24,7 @@ return [ ], 'failed' => 'These credentials do not match our records.', + 'disabled' => 'This account is disabled. Please, contact the system administrator.', 'throttle' => 'Too many login attempts. Please try again in :seconds seconds.', ]; diff --git a/resources/views/auth/users/create.blade.php b/resources/views/auth/users/create.blade.php index d900a281f..f6fc7b495 100644 --- a/resources/views/auth/users/create.blade.php +++ b/resources/views/auth/users/create.blade.php @@ -27,6 +27,8 @@ @permission('read-auth-roles') {{ Form::checkboxGroup('roles', trans_choice('general.roles', 2), $roles, 'display_name') }} @endpermission + + {{ Form::radioGroup('enabled', trans('general.enabled')) }} @@ -50,6 +52,9 @@ @section('scripts')