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; }
* 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) {
$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) {
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)); }