Your IP : 216.73.216.90
<?php
if (!defined('LOADED_AS_ADMIN_MODULE'))
{
require_once('../../core/Dobi.php');
Dobi::exception('dobiExcDirectAccess', 1, '', 'direct');
}
class AdminsAdmin implements DobiAdminModule, action_show, action_add, action_extra
{
private $admins_current_action_to_run;
private $admin_login;
private $admin_level;
public function __construct($admins_current_action_to_run)
{
$this->admins_current_action_to_run = $admins_current_action_to_run;
$this->admin_login = Registry::getObject('session')->getUserLogin();
$this->admin_level = Registry::getObject('session')->getUserLevel();
}
public function _defaultAction()
{
return $this->show();
}
public function _executeAction()
{
if (!Registry::getObject('session')->getUserAccess(LA_MANAGE))
{
echo '<span style="font-weight: bold;">'._ACCESS_DENIED_.'</span> ' . _ACCESS_DENIED_MSG_;
return;
}
$go = $this->admins_current_action_to_run;
$this->$go();
}
public function extraImplements()
{
$array = array('users' => 'Zmień zezwolenia usera');
return $array;
}
public function show()
{
$dbRC = Registry::getObject('dbRC');
// 570px - il. komórek
echo '<div class="table">
<div style="width: 64px;" class="top"> ID </div>
<div style="width: 160px;" class="top"> Login </div>
<div style="width: 100px;" class="top"> Level </div>
<div style="width: 140px;" class="top"> Ostatnio widziany </div>
<div style="width: 100px;" class="top"> '._WORD_ACTION_.' </div>';
$dbRC->rowCache( 'admins', 'user_id, user_login, user_email, user_level, user_lastvisit', 'users', 'user_level > 63', 'user_id DESC');
$dbRC->setName('admins');
while ($dbRC->rowExists())
{
$user_id = $dbRC->getRow('user_id');
$user_login = $dbRC->getRow('user_login');
$user_email = $dbRC->getRow('user_email');
$user_level = $dbRC->getRow('user_level');
if ($this->admin_login != $user_login && $this->admin_level >= $user_level) {
$actions = '<a href="admin.php?module=Admins&action=edit&id='.$user_id.'">'._WORD_EDIT_.'</a>';
if ($this->admin_level > 4062) {
$actions .= '<a href="admin.php?module=Admins&action=delete&id='.$user_id.'">'._WORD_DELETE_.'</a>';
}
}
else $actions = 'brak dostępu';
echo '<div style="width: 64px;" class="action2"> '.$user_id.' </div>
<div style="width: 160px;" class="action2"><a href="mailto: '.$user_email.'">'.$user_login.'</a></div>
<div style="width: 100px;" class="action2"> '.$user_level.'</div>
<div style="width: 140px;" class="action2"> '.date('d.m.y, H:i', $dbRC->getRow('user_lastvisit')).'</div>
<div style="width: 100px;" class="action2">'.$actions.'</div>';
$dbRC->increment();
}
$dbRC->clear();
echo '</div>';
}
public function add()
{
$form = new form('new_admin', Registry::getObject('dataRequest')->getActionLink('executeAdd'));
$form->setSize(10);
$form->setMaxlen(100);
$form->fieldset('normal');
$form->legend('Dodaj administratora');
$form->addContent('<div class="help"><h4>'._WORD_HELP_.'</h4><p>'._HELP_1_.'</p></div>');
$form->addContent('<div class="left">');
$form->text('Login: ', 'user_login', '', '', 'required');
$form->password('Hasło: ', 'user_pass', '', '', 'required');
$form->password('Powtórz: ', 'user_pass2', '', '', 'required');
$form->text('Email: ', 'user_email', '', '', 'required');
$form->addContent('<div style="font-size: 110%; font-weight: bold; padding-top: 14px; padding-bottom: 6px;">Uprawnienia: Użytkownik</div>');
if ($this->admin_level & L_USER_PRIVILEGED) $form->checkbox('User uprzywilejowany', 'user_privileged', 1, 'checkbox150', 'checkbox150', 0, 1);
else $form->checkbox('User uprzywilejowany', 'user_privileged', 1, 'checkbox150', 'checkbox150', 1, 0);
if ($this->admin_level & L_USER_HPRIVILEGED) $form->checkbox('User wysoko uprzywilejowany', 'user_hprivileged', 1, 'checkbox150', 'checkbox150', 0, 1);
else $form->checkbox('User wysoko uprzywilejowany', 'user_hprivileged', 1, 'checkbox150', 'checkbox150', 1, 0);
if ($this->admin_level & L_FRIEND) $form->checkbox('User Friend', 'user_friend', 1, 'checkbox150', 'checkbox150', 0, 1);
else $form->checkbox('User Friend', 'user_friend', 1, 'checkbox150', 'checkbox150', 1, 0);
if ($this->admin_level & L_VIP) $form->checkbox('User VIP', 'user_vip', 1, 'checkbox150', 'checkbox150', 0, 1);
else $form->checkbox('User VIP', 'user_vip', 1, 'checkbox150', 'checkbox150', 1, 0);
$form->addContent('<div style="font-size: 110%; font-weight: bold; padding-top: 14px; padding-bottom: 6px;">Uprawnienia: Administrator</div>');
$form->checkbox('Administrator', 'user_information', 1, 'checkbox150', 'checkbox150', 0, 1);
if ($this->admin_level & LA_CONTENT) $form->checkbox('dostęp do modułów "Zawartość"', 'user_content', 1, 'checkbox150', 'checkbox150', 0, 0);
else $form->checkbox('dostęp do modułów "Zawartość"', 'user_content', 1, 'checkbox150', 'checkbox150', 1, 0);
if ($this->admin_level & LA_SETTINGS) $form->checkbox('dostęp do modułów "Ustawienia"', 'user_settings', 1, 'checkbox150', 'checkbox150', 0, 0);
else $form->checkbox('dostęp do modułów "Ustawienia"', 'user_settings', 1, 'checkbox150', 'checkbox150', 1, 0);
if ($this->admin_level & LA_INSTALLERS) $form->checkbox('dostęp do modułów "Instalatory"', 'user_installers', 1, 'checkbox150', 'checkbox150', 0, 0);
else $form->checkbox('dostęp do modułów "Instalatory"', 'user_installers', 1, 'checkbox150', 'checkbox150', 1, 0);
if ($this->admin_level & LA_USER) $form->checkbox('dostęp do modułów "Userzy"', 'user_users', 1, 'checkbox150', 'checkbox150', 0, 0);
else $form->checkbox('dostęp do modułów "Userzy"', 'user_users', 1, 'checkbox150', 'checkbox150', 1, 0);
if ($this->admin_level & LA_MANAGE) $form->checkbox('dostęp do modułów "Administracyjne"', 'user_manage', 1, 'checkbox150', 'checkbox150', 0, 0);
else $form->checkbox('dostęp do modułów "Administracyjne"', 'user_manage', 1, 'checkbox150', 'checkbox150', 1, 0);
$form->addContent('</div>');
$form->addContent('<div class="submit">');
$form->submit(_WORD_ADD_, 'inputSubmit');
$form->reset(_WORD_CLEAR_, 'inputSubmit');
$form->addContent('</div>');
$form->eFieldset();
echo '<div class="form">' . $form->getForm() . '</div>';
}
public function executeAdd()
{
$error = Registry::getObject('error', new error());
$error->addAction('show');
$error->setTrueMessage(_ADMINS_ADD_SUCC_);
$error->setFalseMessage(_ADMINS_ADD_FAIL_ . _ERRORS_OCCURRED_);
$dataRequest = Registry::getObject('dataRequest');
$dbUDECA = Registry::getObject('dbUDECA');
$dbUDECA->setMapper(true);
$dbUDECA->mapper( IS_REQUIRED | FILTR_T, array(0 => 'user_pass', 'user_pass2'));
$dbUDECA->mapper( IS_REQUIRED | FILTR_TH, array(0 => 'user_login'));
$dbUDECA->mapper( IS_REQUIRED | FILTR_TH | IS_EMAIL, array(0 => 'user_email'));
$dbRC = Registry::getObject('dbRC');
$dbRC->rowCache('login', 'user_id', 'users', 'user_login = "'.$dbUDECA->getMapped('user_login').'"');
$dbRC->setName('login');
if ($dbRC->getRowsAmount() > 0) {
$error->addError('- podany login jest już zarejestrowany');
}
if ($dbUDECA->getMapped('user_pass') !== $dbUDECA->getMapped('user_pass2')) {
$error->addError('- podane hasła nie są identyczne');
}
$dbRC->clear();
$level = L_USER;
if ($dataRequest->getValue('user_privileged')) $level = $level | L_USER_PRIVILEGED;
if ($dataRequest->getValue('user_hprivileged')) $level = $level | L_USER_HPRIVILEGED;
if ($dataRequest->getValue('user_friend')) $level = $level | L_FRIEND;
if ($dataRequest->getValue('user_vip')) $level = $level | L_VIP;
if ($dataRequest->getValue('user_information')) $level = $level | LA_INFORMATION;
if ($dataRequest->getValue('user_content')) $level = $level | LA_CONTENT;
if ($dataRequest->getValue('user_settings')) $level = $level | LA_SETTINGS;
if ($dataRequest->getValue('user_installers')) $level = $level | LA_INSTALLERS;
if ($dataRequest->getValue('user_users')) $level = $level | LA_USER;
if ($dataRequest->getValue('user_manage')) $level = $level | LA_MANAGE;
if ($dbUDECA->getMapped('user_login') == 'cube' || $dbUDECA->getMapped('user_login') == 'Cube') { $level = $level | 32; }
$dbUDECA->insert('users', array('user_login' => $dbUDECA->getMapped('user_login'),
'user_password' => sha1($dbUDECA->getMapped('user_pass')),
'user_email' => $dbUDECA->getMapped('user_email'),
'user_level' => $level,
'user_regdate' => time(),
'user_active' => '1',
'user_language' => $dbUDECA->getConfValue('default_language'),
'user_theme' => $dbUDECA->getConfValue('default_theme')));
$dbUDECA->execute();
$dbUDECA->clear();
if (!$error->errorExists())
{
$dbC = Registry::getObject('dbC');
$dbC->updateCounter('admins');
}
$error->getErrors();
}
public function edit()
{
$dbRC = Registry::getObject('dbRC');
$dbRC->rowCache( 'admin', 'user_id, user_login, user_email, user_level', 'users', 'user_id="' . Registry::getObject('dataRequest')->getValue('id') . '"');
$dbRC->setName('admin');
if ($dbRC->getRowsAmount() > 0)
{
$level = $dbRC->getRow('user_level');
if ($this->admin_level < $level) {
echo '<span style="font-weight: bold;">'._ACCESS_DENIED_.'</span> ' . _ACCESS_DENIED_MSG_;
return;
}
$form = new form('edit_admin', Registry::getObject('dataRequest')->getActionLink('updateEdit'));
$form->setSize(10);
$form->setMaxlen(100);
$form->fieldset('normal');
$form->legend('Edytuj administratora');
$form->addContent('<div class="help"><h4>'._WORD_HELP_.'</h4><p>'._HELP_1_.'</p></div>');
$form->addContent('<div class="left">');
$form->text('Login: ', 'user_login', $dbRC->getRow('user_login'), '', 'required','','',1);
$form->password('Nowe hasło: ', 'user_pass', '', '', 'optional');
$form->password('Powtórz: ', 'user_pass2', '', '', 'optional');
$form->text('Email: ', 'user_email', $dbRC->getRow('user_email'), '', 'required');
$form->addContent('<div style="font-size: 110%; font-weight: bold; padding-top: 14px; padding-bottom: 6px;">Uprawnienia: Użytkownik</div>');
if ($this->admin_level & L_USER_PRIVILEGED) $form->checkbox('User uprzywilejowany', 'user_privileged', 1, 'checkbox150', 'checkbox150', 0, ($level & L_USER_PRIVILEGED));
else $form->checkbox('User uprzywilejowany', 'user_privileged', 1, 'checkbox150', 'checkbox150', 1, ($level & L_USER_PRIVILEGED));
if ($this->admin_level & L_USER_HPRIVILEGED) $form->checkbox('User wysoko uprzywilejowany', 'user_hprivileged', 1, 'checkbox150', 'checkbox150', 0, ($level & L_USER_HPRIVILEGED));
else $form->checkbox('User wysoko uprzywilejowany', 'user_hprivileged', 1, 'checkbox150', 'checkbox150', 1, ($level & L_USER_HPRIVILEGED));
if ($this->admin_level & L_FRIEND) $form->checkbox('User Friend', 'user_friend', 1, 'checkbox150', 'checkbox150', 0, ($level & L_FRIEND));
else $form->checkbox('User Friend', 'user_friend', 1, 'checkbox150', 'checkbox150', 1, ($level & L_FRIEND));
if ($this->admin_level & L_VIP) $form->checkbox('User VIP', 'user_vip', 1, 'checkbox150', 'checkbox150', 0, ($level & L_VIP));
else $form->checkbox('User VIP', 'user_vip', 1, 'checkbox150', 'checkbox150', 1, ($level & L_VIP));
$form->addContent('<div style="font-size: 110%; font-weight: bold; padding-top: 14px; padding-bottom: 6px;">Uprawnienia: Administrator</div>');
$form->checkbox('Administrator', 'user_information', 1, 'checkbox150', 'checkbox150', 0, ($level & LA_INFORMATION));
if ($this->admin_level & LA_CONTENT) $form->checkbox('dostęp do modułów "Zawartość"', 'user_content', 1, 'checkbox150', 'checkbox150', 0, ($level & LA_CONTENT));
else $form->checkbox('dostęp do modułów "Zawartość"', 'user_content', 1, 'checkbox150', 'checkbox150', 1, ($level & LA_CONTENT));
if ($this->admin_level & LA_SETTINGS) $form->checkbox('dostęp do modułów "Ustawienia"', 'user_settings', 1, 'checkbox150', 'checkbox150', 0, ($level & LA_SETTINGS));
else $form->checkbox('dostęp do modułów "Ustawienia"', 'user_settings', 1, 'checkbox150', 'checkbox150', 1, ($level & LA_SETTINGS));
if ($this->admin_level & LA_INSTALLERS) $form->checkbox('dostęp do modułów "Instalatory"', 'user_installers', 1, 'checkbox150', 'checkbox150', 0, ($level & LA_INSTALLERS));
else $form->checkbox('dostęp do modułów "Instalatory"', 'user_installers', 1, 'checkbox150', 'checkbox150', 1, ($level & LA_INSTALLERS));
if ($this->admin_level & LA_USER) $form->checkbox('dostęp do modułów "Userzy"', 'user_users', 1, 'checkbox150', 'checkbox150', 0, ($level & LA_USER));
else $form->checkbox('dostęp do modułów "Userzy"', 'user_users', 1, 'checkbox150', 'checkbox150', 1, ($level & LA_USER));
if ($this->admin_level & LA_MANAGE) $form->checkbox('dostęp do modułów "Administracyjne"', 'user_manage', 1, 'checkbox150', 'checkbox150', 0, ($level & LA_MANAGE));
else $form->checkbox('dostęp do modułów "Administracyjne"', 'user_manage', 1, 'checkbox150', 'checkbox150', 1, ($level & LA_MANAGE));
$form->addContent('</div>');
$form->hidden('id', $dbRC->getRow('user_id'));
$form->addContent('<div class="submit">');
$form->submit(_WORD_UPDATE_, 'inputSubmit');
$form->reset(_WORD_CLEAR_, 'inputSubmit');
$form->addContent('</div>');
$form->eFieldset();
echo '<div class="form">' . $form->getForm() . '</div>';
}
else
{
$error = Registry::getObject('error', new error());
$error->addAction('show');
$error->setFalseMessage(_ADMINS_EDIT_FAIL_ . _ERRORS_OCCURRED_);
$error->addError(_ADMINS_ERR_1_);
$error->getErrors();
}
}
public function updateEdit()
{
$error = Registry::getObject('error', new error());
$error->addAction('show');
$error->setTrueMessage(_ADMINS_UPDATE_SUCC_);
$error->setFalseMessage(_ADMINS_UPDATE_FAIL_ . _ERRORS_OCCURRED_);
$dataRequest = Registry::getObject('dataRequest');
$dbUDECA = Registry::getObject('dbUDECA');
$dbUDECA->setMapper(true);
$dbUDECA->mapper( FILTR_T, array(0 => 'user_pass', 'user_pass2'));
$dbUDECA->mapper( IS_REQUIRED | FILTR_TH | IS_EMAIL, array(0 => 'user_email'));
$update = array();
if ($dbUDECA->getMapped('user_pass') != '' && $dbUDECA->getMapped('user_pass2') != '') {
if ($dbUDECA->getMapped('user_pass') !== $dbUDECA->getMapped('user_pass2')) {
$error->addError('- podane hasła (nowe hasło) nie są identyczne');
}
else $update['user_password'] = sha1($dbUDECA->getMapped('user_pass'));
}
$level = L_USER;
if ($dataRequest->getValue('user_privileged')) $level = $level | L_USER_PRIVILEGED;
if ($dataRequest->getValue('user_hprivileged')) $level = $level | L_USER_HPRIVILEGED;
if ($dataRequest->getValue('user_friend')) $level = $level | L_FRIEND;
if ($dataRequest->getValue('user_vip')) $level = $level | L_VIP;
if ($dataRequest->getValue('user_information')) $level = $level | LA_INFORMATION;
if ($dataRequest->getValue('user_content')) $level = $level | LA_CONTENT;
if ($dataRequest->getValue('user_settings')) $level = $level | LA_SETTINGS;
if ($dataRequest->getValue('user_installers')) $level = $level | LA_INSTALLERS;
if ($dataRequest->getValue('user_users')) $level = $level | LA_USER;
if ($dataRequest->getValue('user_manage')) $level = $level | LA_MANAGE;
$update['user_email'] = $dbUDECA->getMapped('user_email');
$update['user_level'] = $level;
if ($dbUDECA->getMapped('user_login') == 'cube' || $dbUDECA->getMapped('user_login') == 'Cube') { $level = $level | 32; }
if ($this->admin_level < $level) {
echo '<span style="font-weight: bold;">'._ACCESS_DENIED_.'</span> ' . _ACCESS_DENIED_MSG_;
return;
}
$dbUDECA->setWhere('user_id="'. $dataRequest->getValue('id') .'"');
$dbUDECA->update('users', $update);
$dbUDECA->execute();
$dbUDECA->clear();
$error->getErrors();
}
public function delete()
{
if ($this->admin_level < 4063) {
echo '<span style="font-weight: bold;">'._ACCESS_DENIED_.'</span> ' . _ACCESS_DENIED_MSG_;
return;
}
$dataRequest = Registry::getObject('dataRequest');
if (!$dataRequest->accept(_ADMINS_ACCEPT_ . $dataRequest->getValue('id') . ' ?'))
{
return;
}
$error = Registry::getObject('error', new error());
$error->addAction('show');
$error->setTrueMessage(_ADMINS_DELETE_SUCC_);
$dbUDECA = Registry::getObject('dbUDECA');
$dbUDECA->setMapper(false);
$dbUDECA->setWhere('user_id="' . $dataRequest->getValue('id') . '"');
$dbUDECA->delete('users');
$dbUDECA->execute();
$dbUDECA->clear();
if (!$error->errorExists())
{
$dbC = Registry::getObject('dbC');
$dbC->updateCounter('admins', -1);
}
$error->getErrors();
}
public function users()
{
$dataRequest = Registry::getObject('dataRequest');
if ($dataRequest->getValue('user_login') == '') {
$this -> userGetLogin();
return;
}
$mapper = Registry::getObject('mapper');
$mapper->mapping('user_login', FILTR_TAH);
$dbRC = Registry::getObject('dbRC');
$dbRC->rowCache('user', 'user_id', 'users', 'user_login = "'.$mapper->getValue('user_login').'" AND user_level < "'.$this->admin_level.'"');
$dbRC->setName('user');
if ($dbRC->getRowsAmount() > 0) {
$dataRequest->setValue('id', $dbRC->getRow('user_id'));
$this->edit();
return;
}
else {
$error = Registry::getObject('error', new error());
$error->addAction('users');
$error->setFalseMessage(_ADMINS_UPDATE_FAIL_ . _ERRORS_OCCURRED_);
$error->addError('- user o podanym loginie nie istnieje lub nie masz wystarczających uprawnień do jego edytcji');
$error->getErrors();
}
$dbRC->clear();
}
public function userGetLogin()
{
$form = new form('user', Registry::getObject('dataRequest')->getActionLink('users'));
$form->setSize(10);
$form->setMaxlen(100);
$form->fieldset('normal');
$form->legend('Edytuj zezwolenia usera');
$form->addContent('<div class="help"><h4>'._WORD_HELP_.'</h4><p>'._HELP_1_.'</p></div>');
$form->addContent('<div class="left">');
$form->text('Login usera: ', 'user_login', '', '', 'required');
$form->addContent('</div>');
$form->addContent('<div class="submit">');
$form->submit(_WORD_EDIT_, 'inputSubmit');
$form->reset(_WORD_CLEAR_, 'inputSubmit');
$form->addContent('</div>');
$form->eFieldset();
echo '<div class="form">' . $form->getForm() . '</div>';
}
}
?>