Your IP : 216.73.216.90


Current Path : /home/semix18/public_html/optimum-wycena.pl/modules/Admins/
Upload File :
Current File : /home/semix18/public_html/optimum-wycena.pl/modules/Admins/admin.php

<?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&amp;action=edit&amp;id='.$user_id.'">'._WORD_EDIT_.'</a>';
		    	if ($this->admin_level > 4062) {
		    		$actions .= '<a href="admin.php?module=Admins&amp;action=delete&amp;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>';	
	}
	
}

?>