155 lines
5.2 KiB
PHP
155 lines
5.2 KiB
PHP
<?php
|
|
|
|
namespace BRSystems\Core\Sys\sysUsersManager;
|
|
|
|
use BRSystems\Core\Library\cJSON\cJSON;
|
|
use BRSystems\Core\Sys\sysUsersManager\inc\sysUsersManagerController;
|
|
|
|
/**
|
|
* sysUsersManager Controller
|
|
*
|
|
* @category sysUsersManager Controller
|
|
* @author Mareks Keišs <mareks.keiss@brsystems.lv>
|
|
* @since Version 2.0
|
|
*/
|
|
class sysUsersManager
|
|
{
|
|
public $DIR;
|
|
public $uriData;
|
|
public $controller;
|
|
|
|
/**
|
|
* Class constructor
|
|
*/
|
|
public function __construct($uriData) {
|
|
|
|
$this->uriData = $uriData;
|
|
$this->DIR = __DIR__ ? __DIR__ : dirname(__FILE__);
|
|
$this->controller = new sysUsersManagerController($this->uriData, $this->DIR, basename($this->DIR));
|
|
|
|
}
|
|
|
|
/**
|
|
* Default function to run
|
|
* Skip if other callback defined
|
|
*/
|
|
public function run() {
|
|
|
|
$action = getV('action');
|
|
|
|
if($action){
|
|
switch ($action){
|
|
case 'edit': // Quick load by id in get url
|
|
$this->controller->run(true);
|
|
break;
|
|
|
|
case 'filter_table':
|
|
cJSON::sendOk($this->controller->createCmsTable(getP('page'), getP('filter'), getP('headers')));
|
|
break;
|
|
case 'selfLoad':
|
|
cJSON::sendOk($this->controller->loadUserDataById(getV('id')));
|
|
break;
|
|
case 'selfSave':
|
|
if(getV('id')) {
|
|
if($this->controller->oUser->chkPermission('SYS_USER_EDIT', false, false))
|
|
cJSON::sendOk($this->controller->saveUserDataById(getV('id'), getV('fields')));
|
|
else
|
|
cJSON::sendError();
|
|
}else{
|
|
if($this->controller->oUser->chkPermission('SYS_USER_ADD_NEW', false, false))
|
|
cJSON::sendOk($this->controller->saveUserDataById(getV('id'), getV('fields')));
|
|
else
|
|
cJSON::sendError();
|
|
}
|
|
break;
|
|
case 'deleteRecords':
|
|
if($this->controller->oUser->chkPermission('SYS_USER_DELETE')){
|
|
cJSON::sendOk($this->controller->delete(getP('fields')));
|
|
}
|
|
break;
|
|
case 'changeRecordsStatus':
|
|
if($this->controller->oUser->chkPermission('SYS_USER_EDIT')){
|
|
cJSON::sendOk($this->controller->changeEnumFields(getP('baseField'), getP('fields')));
|
|
}
|
|
break;
|
|
|
|
|
|
case 'tablescfg':
|
|
cJSON::sendOk($this->controller->createTablesConfigForm(getV('id')));
|
|
break;
|
|
case 'portletscfg':
|
|
cJSON::sendOk($this->controller->createPortletConfigForm(getV('id')));
|
|
break;
|
|
|
|
|
|
case 'gen2FA-QRCode':
|
|
cJSON::sendOk($this->controller->generate2FAQRCode(getP('data')));
|
|
break;
|
|
case 'genRandomPwd':
|
|
cJSON::sendOk($this->controller->genTempPWD());
|
|
break;
|
|
|
|
default:
|
|
$this->controller->run();
|
|
break;
|
|
}
|
|
}else{
|
|
$this->controller->run();
|
|
}
|
|
|
|
}
|
|
|
|
/**
|
|
* Edit my account data
|
|
*/
|
|
public function userProfileAction() {
|
|
|
|
$action = getV('action');
|
|
$this->controller->bIsUserProfile = true;
|
|
$this->controller->oView->DISABLE_LEFT_MENU = true;
|
|
|
|
if($action){
|
|
switch ($action) {
|
|
case 'selfLoad':
|
|
cJSON::sendOk($this->controller->loadUserDataById());
|
|
break;
|
|
case 'selfSave':
|
|
cJSON::sendOk($this->controller->saveUserDataById(getV('id'), getV('fields')));
|
|
break;
|
|
case 'tablescfg':
|
|
cJSON::sendOk($this->controller->createTablesConfigForm($this->controller->oUser->iUserId));
|
|
break;
|
|
case 'portletscfg':
|
|
cJSON::sendOk($this->controller->createPortletConfigForm($this->controller->oUser->iUserId));
|
|
break;
|
|
|
|
|
|
case 'propsave':
|
|
cJSON::sendOk($this->controller->saveProfileCfgProp(cJSON::decode(getP('prop'), true)));
|
|
break;
|
|
|
|
|
|
case 'activate-2FA':
|
|
cJSON::sendOk($this->controller->set2FAQRCode(getV('secret'), getV('code')));
|
|
break;
|
|
case 'deactivate-2FA':
|
|
cJSON::sendOk($this->controller->unset2FA(getV('code')));
|
|
break;
|
|
case 'get2FA-QRCode':
|
|
cJSON::sendOk($this->controller->get2FAQRCodeForm(getV('reload')));
|
|
break;
|
|
case 'get2FA-4Deactivate':
|
|
cJSON::sendOk($this->controller->get2FAUnsetForm());
|
|
break;
|
|
|
|
|
|
default:
|
|
$this->controller->setMyProfileForm(true);
|
|
break;
|
|
}
|
|
}else{
|
|
$this->controller->setMyProfileForm(true);
|
|
}
|
|
}
|
|
}
|