protected function renderDataCellContent($row, $data)
 {
     $role = $data->getServerRole(Yii::app()->params['view_server_id']);
     $options[''] = Yii::t('mc', 'Unassigned');
     for ($i = 0; $i < count(User::$roles); $i++) {
         $options[User::$roles[$i]] = User::getRoleLabels($i);
     }
     array_pop($options);
     if ($role == 'owner') {
         echo Yii::t('mc', 'Owner');
         return;
     }
     if (Yii::app()->params['view_role'] == 'admin') {
         if ($role == 'admin') {
             echo $options['admin'];
             return;
         }
         array_pop($options);
     }
     echo CHtml::dropDownList('role_' . $data->id, $role, $options, array('ajax' => array('type' => 'POST', 'data' => array('ajax' => 'role', 'user' => $data->id, Yii::app()->request->csrfTokenName => Yii::app()->request->csrfToken, 'role' => "js:\$('#role_" . $data->id . "').val()"), 'success' => 'js:function(e) {if(e)alert(e);}')));
 }
 private function possiblePlayerRoles($model)
 {
     $userRoles = array('1' => Yii::t('mc', 'Default Role'));
     $userRoles += array_combine(User::$roleLevels, User::getRoleLabels());
     if (!Yii::app()->user->isSuperuser()) {
         $idx = array_search(Yii::app()->user->serverRole($model->server_id), User::$roles);
         if ($idx === false) {
             $userRoles = array();
         } else {
             $ur = $userRoles;
             $userRoles = array();
             foreach ($ur as $level => $role) {
                 $userRoles[$level] = $role;
                 if (--$idx < 0) {
                     break;
                 }
             }
         }
         if (array_search($model->level, array_keys($userRoles)) === false) {
             $userRoles = array();
         }
     }
     return $userRoles;
 }
Example #3
0
 *   All rights reserved.
 *
 **/
$this->breadcrumbs = array(Yii::t('mc', 'Servers') => array('server/index'), $sv ? @Server::model()->findByPk($sv)->name : Yii::t('mc', 'All') => $sv ? array('server/view', 'id' => $sv) : array('/server'), Yii::t('mc', 'Commands') => $sv ? array('command/index', 'sv' => $sv) : array('command/admin'), $model->isNewRecord ? Yii::t('mc', 'New Command') : CHtml::encode($model->name));
if (!$model->isNewRecord) {
    $this->menu = array(array('label' => Yii::t('mc', 'Delete Command'), 'url' => '#', 'linkOptions' => array('submit' => array('delete', 'id' => $model->id), 'confirm' => Yii::t('mc', 'Are you sure you want to delete this item?'), 'csrf' => true), 'visible' => $edit, 'icon' => 'command_del'));
}
$this->menu[] = array('label' => Yii::t('mc', 'Back'), 'url' => $sv ? array('command/index', 'sv' => $sv) : array('command/admin'), 'icon' => 'back');
?>

<?php 
if (!$edit) {
    $attribs = array('name', 'level', 'prereq', 'chat', 'response', 'run');
} else {
    $form = $this->beginWidget('CActiveForm', array('id' => 'command-form', 'enableAjaxValidation' => false));
    $userRoles = array_combine(User::$roleLevels, User::getRoleLabels());
    $userRoles[0] = Yii::t('mc', 'None');
    if (Yii::app()->user->isSuperuser()) {
        $attribs[] = array('label' => $form->labelEx($model, 'server_id'), 'type' => 'raw', 'value' => $form->textField($model, 'server_id') . ' ' . $form->error($model, 'server_id'), 'hint' => Yii::t('mc', 'The server ID, use 0 for "Global"'));
        $attribs[] = array('label' => $form->labelEx($model, 'hidden'), 'type' => 'raw', 'value' => $form->checkBox($model, 'hidden') . ' ' . $form->error($model, 'hidden'), 'hint' => Yii::t('mc', 'Only show this command to other superusers'));
    }
    $attribs[] = array('label' => $form->labelEx($model, 'name'), 'type' => 'raw', 'value' => $form->textField($model, 'name') . ' ' . $form->error($model, 'name'));
    $attribs[] = array('label' => $form->labelEx($model, 'level'), 'type' => 'raw', 'value' => $form->dropDownList($model, 'level', $userRoles) . ' ' . $form->error($model, 'level'));
    $attribs[] = array('label' => $form->labelEx($model, 'prereq'), 'type' => 'raw', 'value' => $form->dropDownList($model, 'prereq', array('0' => 'None') + CHtml::listData(Command::model()->findAllByAttributes(array('server_id' => $sv)), 'id', 'name')) . ' ' . $form->error($model, 'prereq'), 'hint' => Yii::t('mc', 'This command has to be run before'));
    $attribs[] = array('label' => $form->labelEx($model, 'chat'), 'type' => 'raw', 'value' => $form->textField($model, 'chat') . ' ' . $form->error($model, 'chat'), 'hint' => Yii::t('mc', 'The users message has to begin with this'));
    $attribs[] = array('label' => $form->labelEx($model, 'response'), 'type' => 'raw', 'value' => $form->textField($model, 'response') . ' ' . $form->error($model, 'response'), 'hint' => Yii::t('mc', 'Whispered to the player'));
    $attribs[] = array('label' => $form->labelEx($model, 'run'), 'type' => 'raw', 'value' => $form->textField($model, 'run') . ' ' . $form->error($model, 'run'), 'hint' => Yii::t('mc', 'Run this Minecraft command (<a href="http://www.multicraft.org/site/page?view=usage#commands" target="_blank">see usage</a> for arguments and multiple commands)'));
    $attribs[] = array('label' => '', 'type' => 'raw', 'value' => CHtml::submitButton($model->isNewRecord ? Yii::t('mc', 'Create') : Yii::t('mc', 'Save')));
}
$this->widget('zii.widgets.CDetailView', array('data' => $model, 'attributes' => $attribs));
if ($edit) {
Example #4
0
    $attribs[] = 'port';
    if ($statusDetail) {
        $attribs[] = $statusDetail;
    }
    if ($statusBanner) {
        $attribs[] = $statusBanner;
    }
} else {
    //possible values for default_role
    $defaultRoles = array_combine(User::$roleLevels, User::getRoleLabels());
    array_pop($defaultRoles);
    //remove owner
    array_pop($defaultRoles);
    //remove admin
    //possible values for permission roles
    $allRoles = array_combine(User::$roles, User::getRoleLabels());
    //possible values for ip authentication
    $ipRoles = $allRoles;
    array_pop($ipRoles);
    //remove owner
    array_pop($ipRoles);
    //remove admin
    $form = $this->beginWidget('CActiveForm', array('id' => 'server-form', 'enableAjaxValidation' => false));
    $conIds = McBridge::get()->getDaemonIds();
    $conCount = count($conIds);
    if (($conCount > 1 || $conCount == 1 && $model->daemon_id != $conIds[0]) && Yii::app()->user->isSuperuser()) {
        $opt = array();
        $attribs[] = array('label' => $form->labelEx($model, 'daemon_id'), 'type' => 'raw', 'value' => $form->dropDownList($model, 'daemon_id', McBridge::get()->conStrings(), $opt) . ' ' . $form->error($model, 'daemon_id'), 'hint' => Yii::t('mc', 'Changing this will shut the server down if running'));
        echo CHtml::hiddenField('move_files', '');
    } else {
        if ($model->isNewRecord && $conCount == 1) {
Example #5
0
 public static function getRoleLabel($role)
 {
     if ($role == 'superuser') {
         return Yii::t('mc', 'Superuser');
     }
     $idx = array_search($role, User::$roles);
     if ($idx === false) {
         return Yii::t('mc', 'No Access');
     }
     return User::getRoleLabels($idx);
 }
 public function actionCreate()
 {
     $model = new User('create');
     if (isset($_POST['User'])) {
         $model->attributes = $_POST['User'];
         if (!strlen($model->password) && Yii::app()->params['mail_welcome']) {
             $model->password = substr(md5(rand() . $model->name), 5, 13);
         }
         $model->sendData = @$_POST['send_data'];
         if ($model->save()) {
             Yii::log('Created user ' . $model->id);
             $this->redirect(array('view', 'id' => $model->id));
         }
     }
     $allRoles = array_combine(User::$roles, User::getRoleLabels());
     $allRoles['superuser'] = Yii::t('mc', 'Superuser');
     $this->render('view', array('model' => $model, 'allRoles' => $allRoles, 'edit' => true));
 }