mirror of
https://github.com/getgrav/grav.git
synced 2025-12-05 15:29:57 +01:00
Added authorized support (2FA)
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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('');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user