Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 Re: Laravel 5.x » Как запретить авторизацию отключенным пользователям ? » 04.07.2015 15:52:01

constb пишет:

}%%%(php)use AuthenticatesAndRegistersUsers;%%

вызов attempt находится в этом трейте. чтобы заменить его функции своими надо просто определить их в своём классе. если используется версия ларавеля 5.1, там определение уже вынесено из %%postLogin%% в %%getCredentials%%. В оригинале она выглядит так:

%%(php)
    protected function getCredentials(Request $request)
    {
        return $request->only($this->loginUsername(), 'password');
    }
%%

видимо надо объявить свою типа:

%%(php)
    protected function getCredentials(Request $request)
    {
        return $request->only($this->loginUsername(), 'password') + [ 'active' => 1 ];
    }
%%


Правильно я понимаю - нужно так-же получить из БД поле "active" в lluminate\Contracts\Auth\Guard;
Да ?


Извиняюсь что спрашиваю так много. Я только начал изучать Laravel.

#2 Re: Laravel 5.x » Как запретить авторизацию отключенным пользователям ? » 04.07.2015 15:22:02

constb пишет:

}%%%(php)use AuthenticatesAndRegistersUsers;%%

вызов attempt находится в этом трейте. чтобы заменить его функции своими надо просто определить их в своём классе. если используется версия ларавеля 5.1, там определение уже вынесено из %%postLogin%% в %%getCredentials%%. В оригинале она выглядит так:

%%(php)
    protected function getCredentials(Request $request)
    {
        return $request->only($this->loginUsername(), 'password');
    }
%%

видимо надо объявить свою типа:

%%(php)
    protected function getCredentials(Request $request)
    {
        return $request->only($this->loginUsername(), 'password') + [ 'active' => 1 ];
    }
%%




Я написал так:
public function postLogin(Request $request)
    {
        $this->validate($request, [
            'email' => 'required|email', 'password' => 'required',
        ]);

        $credentials = $request->only('email', 'password', ['active' => '1' ]);

        if ($this->auth->attempt($credentials, $request->has('remember')))
        {
            return redirect()->intended($this->redirectPath());
        }

        return redirect($this->loginPath())
                    ->withInput($request->only('email', 'remember'))
                    ->withErrors([
                        'email' => $this->getFailedLoginMessage(),
                    ]);
    }

НО он теперь ругается что -
ErrorException in Arr.php line 214: Illegal offset type in isset or empty

В модель я добавил поле 'active'
Больше не чего не трогал.

#3 Re: Laravel 5.x » Как запретить авторизацию отключенным пользователям ? » 04.07.2015 15:15:17

constb пишет:

}%%%(php)use AuthenticatesAndRegistersUsers;%%

вызов attempt находится в этом трейте. чтобы заменить его функции своими надо просто определить их в своём классе. если используется версия ларавеля 5.1, там определение уже вынесено из %%postLogin%% в %%getCredentials%%. В оригинале она выглядит так:

%%(php)
    protected function getCredentials(Request $request)
    {
        return $request->only($this->loginUsername(), 'password');
    }
%%

видимо надо объявить свою типа:

%%(php)
    protected function getCredentials(Request $request)
    {
        return $request->only($this->loginUsername(), 'password') + [ 'active' => 1 ];
    }
%%




Я использую версию 5,0.
Она не имеет метода loginUsername().

Ларавель ругается что не знает такого метода.
Я уже запутался что где есть, и что где нужно исправлять.

#4 Re: Laravel 5.x » Как запретить авторизацию отключенным пользователям ? » 02.07.2015 17:36:32

constb пишет:

}%если используется стандартная авторизация - просто добавь к передаваемым в %%attempt%% полям %%active => 1%%.


но там нет attempt

<?php namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use Illuminate\Contracts\Auth\Guard;
use Illuminate\Contracts\Auth\Registrar;
use Illuminate\Foundation\Auth\AuthenticatesAndRegistersUsers;

class AuthController extends Controller {

    /*
    |--------------------------------------------------------------------------
    | Registration & Login Controller
    |--------------------------------------------------------------------------
    |
    | This controller handles the registration of new users, as well as the
    | authentication of existing users. By default, this controller uses
    | a simple trait to add these behaviors. Why don't you explore it?
    |
    */

    use AuthenticatesAndRegistersUsers;

    /**
     * Create a new authentication controller instance.
     *
     * @param  \Illuminate\Contracts\Auth\Guard  $auth
     * @param  \Illuminate\Contracts\Auth\Registrar  $registrar
     * @return void
     */
    public function __construct(Guard $auth, Registrar $registrar)
    {
        $this->auth = $auth;
        $this->registrar = $registrar;

        $this->middleware('guest', ['except' => 'getLogout']);
    }

}



Это контролер.

#5 Re: Laravel 5.x » Как запретить авторизацию отключенным пользователям ? » 02.07.2015 15:30:54

hzone пишет:

middleware ?



И с проверкой middleware я не смог разобраться.
Можете показать пример.

#6 Re: Laravel 5.x » Как запретить авторизацию отключенным пользователям ? » 02.07.2015 15:30:27

constb пишет:

}%если используется стандартная авторизация - просто добавь к передаваемым в %%attempt%% полям %%active => 1%%.

Я не смог разобраться.
Можете показать пример.

#7 Laravel 5.x » Как запретить авторизацию отключенным пользователям ? » 01.07.2015 20:13:20

VadimLynnik
Ответов: 13

В таблице где хранятся все данные о пользователях, я добавил поле "active".
Значение поля "0" или "1".
Если установлено 0 - то у пользователя не получится авторизоваться .
Есть статья в мануале, но у меня не получается.
Может кто-то делал ?

Подвал раздела