コード例 #1
0
ファイル: UserIdentity.php プロジェクト: BroneKot/CS-Bans
 /**
  * Аутентификация пользователя.
  * @return boolean если аутентификация успешна.
  */
 public function authenticate()
 {
     $username = strtolower($this->username);
     $user = Webadmins::model()->find('LOWER(username)=?', array($username));
     Yii::import('ext.kcaptcha.KCaptchaValidator');
     if ($user === null) {
         $this->errorCode = self::ERROR_USERNAME_INVALID;
     } elseif ($user->try >= 3 && empty($_POST['verify'])) {
         Yii::app()->request->cookies['captcha_auth'] = new CHttpCookie('captcha_auth', '1');
         Yii::app()->controller->refresh();
     } elseif ($user->try >= 3 && !KCaptchaValidator::testCode($_POST['verify'])) {
         $this->errorCode = self::ERROR_PASSWORD_INVALID;
     } elseif (!$user->validatePassword($this->password)) {
         $this->errorCode = self::ERROR_PASSWORD_INVALID;
         $user->try++;
         $user->scenario = 'auth';
         $user->save();
     } else {
         $this->_id = $user->id;
         $this->setState('email', $user->email);
         $this->username = $user->username;
         $this->errorCode = self::ERROR_NONE;
         // Лог входа, добавить запись
         $user->last_action = time();
         $user->try = 0;
         $user->scenario = 'auth';
         $user->save();
         unset(Yii::app()->request->cookies['captha_auth']);
     }
     return $this->errorCode == self::ERROR_NONE;
 }
コード例 #2
0
 public function loadModel($id)
 {
     $model = Webadmins::model()->findByPk($id);
     if ($model === null) {
         throw new CHttpException(404, 'The requested page does not exist.');
     }
     return $model;
 }
コード例 #3
0
ファイル: Webadmins.php プロジェクト: BroneKot/CS-Bans
 public function beforeValidate()
 {
     parent::beforeValidate();
     if (!$this->isNewRecord) {
         $oldRecord = Webadmins::model()->findByPk($this->id);
         if ($this->password && $oldRecord->password !== $this->password) {
             $this->password = md5($this->password);
         } else {
             $this->password = $oldRecord->password;
         }
     } else {
         $this->password = md5($this->password);
     }
     return TRUE;
 }
コード例 #4
0
 /**
  * Удаление админа
  * @param integer $id ID админа
  */
 public function actionDelete($id)
 {
     if (!Webadmins::checkAccess('amxadmins_edit')) {
         throw new CHttpException(403, "У Вас недостаточно прав");
     }
     $model = $this->loadModel($id);
     $model->delete();
     $wa_model = Webadmins::model()->find('`username` = :nick', array(':nick' => $model->nickname));
     if ($wa_model !== null) {
         $wa_model->delete();
     }
     // Если не аякс запрос, то перенаправляем
     if (!isset($_GET['ajax'])) {
         $this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('admin'));
     }
 }
コード例 #5
0
ファイル: admin.php プロジェクト: urichalex/CS-Bans
 * @copyright (C)2016 Craft-Soft.ru.  Все права защищены.
 * @link http://craft-soft.ru/
 * @license http://creativecommons.org/licenses/by-nc-sa/4.0/deed.ru  «Attribution-NonCommercial-ShareAlike»
 */
$this->pageTitle = Yii::app()->name . ' :: Админцентр - Системный лог';
$this->breadcrumbs = array('Админцентр' => array('/admin/index'), 'Системный лог');
$this->menu = array(array('label' => 'Удалить все записи', 'url' => '#', 'linkOptions' => array('id' => 'clearLog')));
Yii::app()->clientScript->registerScript('', '
	$("a#clearLog").click(function(){
		if(!confirm("Удалить все записи лога?"))
			return false;

		var ret = "";

		$.post("", {"clearlog": 1}, function(data){
			jQuery("#logs-grid").yiiGridView("update");
			alert("Лог очищен");
		});
		return false;
	});
');
$this->renderPartial('/admin/mainmenu', array('active' => 'site', 'activebtn' => 'logs'));
?>

<h2>Системный лог</h2>

<?php 
$criteria = new CDbCriteria();
$criteria->group = 'username';
$this->widget('bootstrap.widgets.TbGridView', array('id' => 'logs-grid', 'dataProvider' => $model->search(), 'filter' => $model, 'afterAjaxUpdate' => 'reinstallDatePicker', 'columns' => array(array('name' => 'timestamp', 'type' => 'datetime', 'value' => '$data->timestamp', 'filter' => $this->widget('zii.widgets.jui.CJuiDatePicker', array('model' => $model, 'id' => 'timestamp', 'attribute' => 'timestamp', 'language' => 'ru', 'i18nScriptFile' => 'jquery-ui-i18n.min.js', 'htmlOptions' => array('id' => 'timestamp', 'size' => '10'), 'options' => array('showAnim' => 'fold')), true)), array('name' => 'username', 'value' => '$data->username', 'filter' => CHtml::listData(Webadmins::model()->findAll(), 'username', 'username')), array('name' => 'action', 'value' => 'Logs::getLogType($data->action)', 'filter' => Logs::getLogType(FALSE, TRUE)), array('class' => 'bootstrap.widgets.TbButtonColumn', 'template' => '{view} {delete}'))));
Yii::app()->clientScript->registerScript('re-install-date-picker', "\r\n\tfunction reinstallDatePicker(id, data) {\r\n\t\t\$('#timestamp').datepicker(jQuery.extend({showMonthAfterYear:false},jQuery.datepicker.regional['ru'],{'showAnim':'fold'}));\r\n\t}\r\n");