2016-08-10 2 views
0

Я только что добавил новый столбец [role_id] в Laravel пользователей по умолчанию в таблице:Предотвратить Войти на основе роли пользователя - Laravel

<?php 

use Illuminate\Database\Schema\Blueprint; 
use Illuminate\Database\Migrations\Migration; 

class AddRolesidToUsersTable extends Migration 
{ 
    /** 
    * Run the migrations. 
    * 
    * @return void 
    */ 
    public function up() 
    { 
     Schema::table('users', function (Blueprint $table) { 
      $table->integer('role_id'); 
     }); 
    } 

    /** 
    * Reverse the migrations. 
    * 
    * @return void 
    */ 
    public function down() 
    { 
     Schema::table('users', function (Blueprint $table) { 
      $table->dropColumn('role_id'); 
     }); 
    } 
} 

Я не знаю, где в Laravel могу я добавить правило проверки для пользователь для входа?

Например, если у пользователя нет требуемой роли, он не может войти, даже если он находится в базе данных! Итак, идея состоит в том, что администратор должен сначала активировать учетную запись, чтобы пользователь мог войти в систему.

+0

Вы можете оставить структуру ролей таблицы и красноречивые модели, а? – Gadzhev

+0

У меня нет таблицы ролей, а таблица пользовательских моделей по умолчанию, только с этим добавленным столбцом ... Я только что начал проект. Поэтому я думаю, что это должно быть сделано где-то в процессе входа в систему. Мне нужно просто добавить еще одно правило проверки рядом с именем пользователя и паролем - но где эта проверка авторизации? – lewis4u

+0

Я, наконец, нашел его ... функция входа в этот файл: /vendor/laravel/framework/src/Illuminate/Foundation/Auth/AuthenticatesUsers.php – lewis4u

ответ

1

См. Раздел Manually Authenticating Users в документах. Мы можем указать дополнительные условия аутентификации:

if (Auth::attempt(['email' => $email, 'password' => $password, 'active' => 1])) { // The user is active, not suspended, and exists. }

Смежные вопросы