Вход Регистрация
Файл: silawar.ru/protected/modules/panel/controllers/EditController.php
Строк: 119
<?php
class EditController extends AdminBaseController {
    public function 
accessRules() {
        return array(
            array(
'deny',
                
'roles' => array('banned'),
                
'deniedCallback' => array(Yii::app()->controller'redirectToHome'),
            ),
            array(
'allow',
                
'actions' => array('index''setBan''unBan''chatEdit''forumEdit'),
                
'roles' => array('moder'),
            ),
            array(
'deny',
                
'users' => array('*'),
                
'deniedCallback' => array(Yii::app()->controller'redirectToHome'),
            )
        );
    }
    
    public function 
actionSetBan($id) {
        
$model = new AdminForm('banUser');
        
$user Users::model()->findByPk($id);
        
$this->performAjaxValidation($model);
        if (isset(
$_POST['AdminForm'])) {
            
$model->attributes $_POST['AdminForm'];
            if (
$model->validate()) {
                
$ban = new UserBan();
                
$ban->attributes $model->attributes;
                
$ban->id_user $id;
                if (
$model->type == 2) {
                    
$ban->time time() + 3600 24 $model->number;
                }
                elseif (
$model->type == 1) {
                    
$ban->time time() + 3600 $model->number;
                } 
                else 
                    
$ban->time 0;
                if (!
$ban->save(false)) {
                    throw new 
CHttpException(500Yii::t('layout''Ошибка при выдаче бана'));
                }
                
$user->id_role 7;
                
$user->id_ban $ban->id_ban;
                if (!
$user->save(false)) {
                    throw new 
CHttpException(500Yii::t('layout''Ошибка при выдаче бана'));
                }
                
//do anything here
                
echo CJSON::encode(array(
                    
'status'=>'success',
                    
'reload'=>true,
                ));
                
Yii::app()->end();
             }
             else{
                
$error CActiveForm::validate($model);
                if(
$error!='[]')
                    echo 
$error;
                
Yii::app()->end();
             }
        }
        
$this->renderPartial('setBan', array(
            
'model'=>$model,
        ));
    }
    public function 
actionUnBan($id) {
        
$user Users::model()->findByPk($id);
        
$user->id_ban null;
        if (!
$user->save(false)) {
            throw new 
CHttpException(500Yii::t('layout''Ошибка при снятии бана'));
        }
        
$this->redirect(Yii::app()->request->urlReferrer); 
        
Yii::app()->end();
    }
    
    public function 
actionChatEdit($id) {
        
$message Chat::model()->findByPk($id);
        
$this->messageEdit($message);
    }
    
    public function 
actionForumEdit($id) {
        
$message ForumMessages::model()->findByPk($id);
        
$this->messageEdit($message);
    }
    
    public function 
messageEdit($message) {
        
$model = new AdminForm('messageEdit');
        
$model->attributes $message->attributes;
        
$this->performAjaxValidation($model);
        if (isset(
$_POST['AdminForm'])) {
            
$model->attributes $_POST['AdminForm'];
            if (
$model->validate()) {
                if (
$model->is_delete) {
                    if (!
$message->delete()) {
                        throw new 
CHttpException(500Yii::t('layout''Ошибка при работе с сообщением!'));
                    }
                }
                if (
$model->message != $message->message) {
                    
$message->message $model->message;
                    
$message->answer 'отредактировал '.Yii::app()->user->login;
                    if (!
$message->save(false)) {
                        throw new 
CHttpException(500Yii::t('layout''Ошибка при работе с сообщением!'));
                    }
                }
                elseif (
$model->answer) {
                    
$message->id_moder Yii::app()->user->id;
                    
$message->answer $model->answer;
                    
$message->answer_type 2;
                    if (!
$message->save(false)) {
                        throw new 
CHttpException(500Yii::t('layout''Ошибка при работе с сообщением!'));
                    }
                }
                elseif (
$model->mute) {
                    
$message->id_moder Yii::app()->user->id;
                    
$message->answer '';
                    if (
$model->reason)
                        
$message->answer .= $model->reason.'. ';
                    
$message->answer .= 'Молчание на '.$model->mute.' ч.';
                    
$message->answer_type 3;
                    if (!
$message->save(false)) {
                        throw new 
CHttpException(500Yii::t('layout''Ошибка при работе с сообщением!'));
                    }
                    
$user Users::model()->findByPk($message->id_user);
                    
$user->mute_time time()+$model->mute*60*60;
                    if (!
$user->save(false)) {
                        throw new 
CHttpException(500Yii::t('layout''Ошибка при работе с пользователем!'));
                    }
                    
$mail = new UserMail();
                    
$mail->who 0;
                    
$mail->whom $message->id_user;
                    
$mail->id_user $message->id_user;
                    
$mail->text 'Вы получили наказание "Молчание на '.$model->mute.' ч."';
                    if (!
$mail->save(false)) {
                        throw new 
CHttpException(500Yii::t('layout''Ошибка при отправке почты!'));
                    }
                }
                echo 
CJSON::encode(array(
                     
'status'=>'success',
                     
'updateList'=>'messages',
                ));
                
Yii::app()->end();
             }
             else{
                
$error CActiveForm::validate($model);
                if(
$error!='[]')
                    echo 
$error;
                
Yii::app()->end();
             }
        }
        
$this->renderPartial('messageEdit', array(
            
'model'=>$model,
            
'message'=>$message,
        ));
    }
    
    
/**
     * Performs the AJAX validation.
     * @param UserGroups $model the model to be validated
     */
    
protected function performAjaxValidation($model) {
        if (isset(
$_POST['ajax']) && $_POST['ajax'] === 'panel-form') {
            echo 
CActiveForm::validate($model);
            
Yii::app()->end();
        }
    }
}
Онлайн: 0
Реклама