/** * @param $parameters Parameters * @param $form string[] an authentication form result with keys 'login' and 'password' * @param $files array * @return mixed */ public function run(Parameters $parameters, $form, $files) { if (isset($form['login']) && isset($form['password'])) { $current = User::current(); if ($current) { Authentication::disconnect(User::current()); } $user = Authentication::login($form['login'], $form['password']); if (isset($user)) { Authentication::authenticate($user); return (new Default_Controller())->run($parameters, $form, $files, get_class($user), 'authenticate'); } } return (new Default_Controller())->run($parameters, $form, $files, User::class, 'authenticateError'); }
/** * Run method for a feature controller working for any class * * @param $parameters Parameters * @param $form array * @param $files array * @param $class_name string * @return mixed */ public function run(Parameters $parameters, $form, $files, $class_name) { if (isset($form['login']) && isset($form['password'])) { $current = User::current(); if ($current) { Authentication::disconnect(User::current()); } $user = Authentication::login($form['login'], $form['password']); if (isset($user)) { Authentication::authenticate($user); return self::AUTH_OK . rParse(Session::sid(), '='); } } return self::AUTH_ERROR; }