Added authorized support (2FA)

This commit is contained in:
Matias Griese
2018-05-10 19:56:56 +03:00
parent 2c7d866724
commit 2c82e15fa1
2 changed files with 8 additions and 4 deletions

View File

@@ -16,6 +16,7 @@ use Grav\Common\Twig\TokenParser\TwigTokenParserStyle;
use Grav\Common\Twig\TokenParser\TwigTokenParserSwitch;
use Grav\Common\Twig\TokenParser\TwigTokenParserTryCatch;
use Grav\Common\Twig\TokenParser\TwigTokenParserMarkdown;
use Grav\Common\User\User;
use Grav\Common\Utils;
use Grav\Common\Markdown\Parsedown;
use Grav\Common\Markdown\ParsedownExtra;
@@ -875,7 +876,10 @@ class TwigExtension extends \Twig_Extension implements \Twig_Extension_GlobalsIn
*/
public function authorize($action)
{
if (!$this->grav['user']->authenticated) {
/** @var User $user */
$user = $this->grav['user'];
if (!$user->authenticated || (isset($user->authorized) && !$user->authorized)) {
return false;
}
@@ -884,7 +888,7 @@ class TwigExtension extends \Twig_Extension implements \Twig_Extension_GlobalsIn
$prefix = is_int($key) ? '' : $key . '.';
$perms = $prefix ? (array) $perms : [$perms => true];
foreach ($perms as $action2 => $authenticated) {
if ($this->grav['user']->authorize($prefix . $action2)) {
if ($user->authorize($prefix . $action2)) {
return $authenticated;
}
}

View File

@@ -62,9 +62,9 @@ class User extends Data
$files = $account_dir ? array_diff(scandir($account_dir), ['.', '..']) : [];
// Try with username first, you never know!
if (in_array('username', $fields)) {
if (in_array('username', $fields, true)) {
$user = User::load($query);
unset($fields[array_search('username', $fields)]);
unset($fields[array_search('username', $fields, true)]);
} else {
$user = User::load('');
}