Skip to content
Code-Schnipsel Gruppen Projekte
Commit 5ab81670 erstellt von Patrick Müller's avatar Patrick Müller
Dateien durchsuchen

feat: Permission-Abfrage bei Ajax-Requests

Übergeordneter faa524d2
No related branches found
No related tags found
Keine zugehörigen Merge Requests gefunden
...@@ -11,10 +11,22 @@ ...@@ -11,10 +11,22 @@
QUI::$Ajax->registerFunction( QUI::$Ajax->registerFunction(
'package_quiqqer_authgoogle2fa_ajax_deleteKeys', 'package_quiqqer_authgoogle2fa_ajax_deleteKeys',
function ($userId, $titles) { function ($userId, $titles) {
$AuthUser = QUI::getUsers()->get((int)$userId); $Users = QUI::getUsers();
$titles = Orthos::clearArray(json_decode($titles, true)); $AuthUser = $Users->get((int)$userId);
$titles = Orthos::clearArray(json_decode($titles, true));
$SessionUser = QUI::getUserBySession();
// @todo Check user edit permission of session user // @todo Check user edit permission of session user
if ($Users->isNobodyUser($SessionUser)) {
throw new QUI\Permissions\Exception(
QUI::getLocale()->get(
'quiqqer/system',
'exception.lib.user.no.edit.rights'
)
);
}
$SessionUser->checkEditPermission();
try { try {
$secrets = json_decode($AuthUser->getAttribute('quiqqer.auth.google2fa.secrets'), true); $secrets = json_decode($AuthUser->getAttribute('quiqqer.auth.google2fa.secrets'), true);
......
...@@ -15,16 +15,25 @@ ...@@ -15,16 +15,25 @@
QUI::$Ajax->registerFunction( QUI::$Ajax->registerFunction(
'package_quiqqer_authgoogle2fa_ajax_generateKey', 'package_quiqqer_authgoogle2fa_ajax_generateKey',
function ($userId, $title) { function ($userId, $title) {
$AuthUser = QUI::getUsers()->get((int)$userId); $Users = QUI::getUsers();
$title = Orthos::clear($title); $SessionUser = QUI::getUserBySession();
$CreateUser = QUI::getUserBySession(); $AuthUser = $Users->get((int)$userId);
$title = Orthos::clear($title);
// @todo Check user edit permission of session user if ($Users->isNobodyUser($SessionUser)) {
throw new QUI\Permissions\Exception(
QUI::getLocale()->get(
'quiqqer/system',
'exception.lib.user.no.edit.rights'
)
);
}
$SessionUser->checkEditPermission();
try { try {
$Google2FA = new Google2FA(); $Google2FA = new Google2FA();
$secrets = json_decode($AuthUser->getAttribute('quiqqer.auth.google2fa.secrets'), true);
$secrets = json_decode($AuthUser->getAttribute('quiqqer.auth.google2fa.secrets'), true);
if (empty($secrets)) { if (empty($secrets)) {
$secrets = array(); $secrets = array();
...@@ -43,7 +52,7 @@ function ($userId, $title) { ...@@ -43,7 +52,7 @@ function ($userId, $title) {
$secrets[$title] = array( $secrets[$title] = array(
'key' => Security::encrypt($Google2FA->generateSecretKey(32)), 'key' => Security::encrypt($Google2FA->generateSecretKey(32)),
'recoveryKeys' => Auth::generateRecoveryKeys(), 'recoveryKeys' => Auth::generateRecoveryKeys(),
'createUserId' => $CreateUser->getId(), 'createUserId' => $SessionUser->getId(),
'createDate' => date('Y-m-d H:i:s') 'createDate' => date('Y-m-d H:i:s')
); );
......
...@@ -15,11 +15,21 @@ ...@@ -15,11 +15,21 @@
QUI::$Ajax->registerFunction( QUI::$Ajax->registerFunction(
'package_quiqqer_authgoogle2fa_ajax_getKey', 'package_quiqqer_authgoogle2fa_ajax_getKey',
function ($userId, $title) { function ($userId, $title) {
$AuthUser = QUI::getUsers()->get((int)$userId); $Users = QUI::getUsers();
$title = Orthos::clear($title); $SessionUser = QUI::getUserBySession();
$keyData = array(); $AuthUser = $Users->get((int)$userId);
$title = Orthos::clear($title);
// @todo Check user edit permission of session user if ($Users->isNobodyUser($SessionUser)) {
throw new QUI\Permissions\Exception(
QUI::getLocale()->get(
'quiqqer/system',
'exception.lib.user.no.edit.rights'
)
);
}
$SessionUser->checkEditPermission();
try { try {
$Google2FA = new Google2FA(); $Google2FA = new Google2FA();
......
...@@ -9,10 +9,22 @@ ...@@ -9,10 +9,22 @@
QUI::$Ajax->registerFunction( QUI::$Ajax->registerFunction(
'package_quiqqer_authgoogle2fa_ajax_getKeys', 'package_quiqqer_authgoogle2fa_ajax_getKeys',
function ($userId) { function ($userId) {
$AuthUser = QUI::getUsers()->get((int)$userId); $Users = QUI::getUsers();
$keys = array(); $SessionUser = QUI::getUserBySession();
$AuthUser = $Users->get((int)$userId);
// @todo Check user edit permission of session user if ($Users->isNobodyUser($SessionUser)) {
throw new QUI\Permissions\Exception(
QUI::getLocale()->get(
'quiqqer/system',
'exception.lib.user.no.edit.rights'
)
);
}
$SessionUser->checkEditPermission();
$keys = array();
try { try {
$secrets = json_decode($AuthUser->getAttribute('quiqqer.auth.google2fa.secrets'), true); $secrets = json_decode($AuthUser->getAttribute('quiqqer.auth.google2fa.secrets'), true);
......
...@@ -15,11 +15,21 @@ ...@@ -15,11 +15,21 @@
QUI::$Ajax->registerFunction( QUI::$Ajax->registerFunction(
'package_quiqqer_authgoogle2fa_ajax_regenerateRecoveryKeys', 'package_quiqqer_authgoogle2fa_ajax_regenerateRecoveryKeys',
function ($userId, $title) { function ($userId, $title) {
$AuthUser = QUI::getUsers()->get((int)$userId); $Users = QUI::getUsers();
$title = Orthos::clear($title); $SessionUser = QUI::getUserBySession();
$EditUser = QUI::getUserBySession(); $AuthUser = $Users->get((int)$userId);
$title = Orthos::clear($title);
// @todo Check user edit permission of session user if ($Users->isNobodyUser($SessionUser)) {
throw new QUI\Permissions\Exception(
QUI::getLocale()->get(
'quiqqer/system',
'exception.lib.user.no.edit.rights'
)
);
}
$SessionUser->checkEditPermission();
try { try {
$secrets = json_decode($AuthUser->getAttribute('quiqqer.auth.google2fa.secrets'), true); $secrets = json_decode($AuthUser->getAttribute('quiqqer.auth.google2fa.secrets'), true);
......
0% oder .
You are about to add 0 people to the discussion. Proceed with caution.
Bearbeitung dieser Nachricht zuerst beenden!
Bitte registrieren oder zum Kommentieren