Update server policy definitions

This commit is contained in:
Dane Everitt 2016-01-18 00:56:09 -05:00
parent 4f3629fc4c
commit 57cf636816
3 changed files with 209 additions and 86 deletions

View file

@ -60,6 +60,70 @@ class ServerPolicy
return $user->permissions()->server($server)->permission('power')->exists(); return $user->permissions()->server($server)->permission('power')->exists();
} }
/**
* Check if user has permission to start a server.
*
* @param Pterodactyl\Models\User $user
* @param Pterodactyl\Models\Server $server
* @return boolean
*/
public function powerStart(User $user, Server $server)
{
if ($this->isOwner($user, $server)) {
return true;
}
return $user->permissions()->server($server)->permission('power-start')->exists();
}
/**
* Check if user has permission to stop a server.
*
* @param Pterodactyl\Models\User $user
* @param Pterodactyl\Models\Server $server
* @return boolean
*/
public function powerStop(User $user, Server $server)
{
if ($this->isOwner($user, $server)) {
return true;
}
return $user->permissions()->server($server)->permission('power-stop')->exists();
}
/**
* Check if user has permission to restart a server.
*
* @param Pterodactyl\Models\User $user
* @param Pterodactyl\Models\Server $server
* @return boolean
*/
public function powerRestart(User $user, Server $server)
{
if ($this->isOwner($user, $server)) {
return true;
}
return $user->permissions()->server($server)->permission('power-restart')->exists();
}
/**
* Check if user has permission to kill a server.
*
* @param Pterodactyl\Models\User $user
* @param Pterodactyl\Models\Server $server
* @return boolean
*/
public function powerKill(User $user, Server $server)
{
if ($this->isOwner($user, $server)) {
return true;
}
return $user->permissions()->server($server)->permission('power-kill')->exists();
}
/** /**
* Check if user has permission to run a command on a server. * Check if user has permission to run a command on a server.
* *
@ -67,13 +131,13 @@ class ServerPolicy
* @param Pterodactyl\Models\Server $server * @param Pterodactyl\Models\Server $server
* @return boolean * @return boolean
*/ */
public function command(User $user, Server $server) public function sendCommand(User $user, Server $server)
{ {
if ($this->isOwner($user, $server)) { if ($this->isOwner($user, $server)) {
return true; return true;
} }
return $user->permissions()->server($server)->permission('command')->exists(); return $user->permissions()->server($server)->permission('send-command')->exists();
} }
/** /**
@ -212,13 +276,77 @@ class ServerPolicy
* @param Pterodactyl\Models\Server $server * @param Pterodactyl\Models\Server $server
* @return boolean * @return boolean
*/ */
public function viewSubusers(User $user, Server $server) public function listSubusers(User $user, Server $server)
{ {
if ($this->isOwner($user, $server)) { if ($this->isOwner($user, $server)) {
return true; return true;
} }
return $user->permissions()->server($server)->permission('view-subusers')->exists(); return $user->permissions()->server($server)->permission('list-subusers')->exists();
}
/**
* Check if user has permission to view specific subuser permissions.
*
* @param Pterodactyl\Models\User $user
* @param Pterodactyl\Models\Server $server
* @return boolean
*/
public function viewSubuser(User $user, Server $server)
{
if ($this->isOwner($user, $server)) {
return true;
}
return $user->permissions()->server($server)->permission('view-subuser')->exists();
}
/**
* Check if user has permission to edit a subuser.
*
* @param Pterodactyl\Models\User $user
* @param Pterodactyl\Models\Server $server
* @return boolean
*/
public function editSubuser(User $user, Server $server)
{
if ($this->isOwner($user, $server)) {
return true;
}
return $user->permissions()->server($server)->permission('edit-subuser')->exists();
}
/**
* Check if user has permission to delete a subuser.
*
* @param Pterodactyl\Models\User $user
* @param Pterodactyl\Models\Server $server
* @return boolean
*/
public function deleteSubuser(User $user, Server $server)
{
if ($this->isOwner($user, $server)) {
return true;
}
return $user->permissions()->server($server)->permission('delete-subuser')->exists();
}
/**
* Check if user has permission to edit a subuser.
*
* @param Pterodactyl\Models\User $user
* @param Pterodactyl\Models\Server $server
* @return boolean
*/
public function createSubuser(User $user, Server $server)
{
if ($this->isOwner($user, $server)) {
return true;
}
return $user->permissions()->server($server)->permission('create-subuser')->exists();
} }
/** /**

View file

@ -194,7 +194,7 @@
<a href="#" class="list-group-item list-group-item-heading"><strong>{{ trans('pagination.sidebar.server_controls') }}</strong></a> <a href="#" class="list-group-item list-group-item-heading"><strong>{{ trans('pagination.sidebar.server_controls') }}</strong></a>
<a href="/server/{{ $server->uuidShort }}/" class="list-group-item server-index">{{ trans('pagination.sidebar.overview') }}</a> <a href="/server/{{ $server->uuidShort }}/" class="list-group-item server-index">{{ trans('pagination.sidebar.overview') }}</a>
@can('list-files', $server)<a href="/server/{{ $server->uuidShort }}/files" class="list-group-item server-files">{{ trans('pagination.sidebar.files') }}</a>@endcan @can('list-files', $server)<a href="/server/{{ $server->uuidShort }}/files" class="list-group-item server-files">{{ trans('pagination.sidebar.files') }}</a>@endcan
@can('view-subusers', $server)<a href="/server/{{ $server->uuidShort }}/users" class="list-group-item server-users">{{ trans('pagination.sidebar.subusers') }}</a>@endcan @can('list-subusers', $server)<a href="/server/{{ $server->uuidShort }}/users" class="list-group-item server-users">{{ trans('pagination.sidebar.subusers') }}</a>@endcan
@can('view-manage', $server)<a href="/server/{{ $server->uuidShort }}/settings" class="list-group-item server-settings">{{ trans('pagination.sidebar.manage') }}</a>@endcan @can('view-manage', $server)<a href="/server/{{ $server->uuidShort }}/settings" class="list-group-item server-settings">{{ trans('pagination.sidebar.manage') }}</a>@endcan
</div> </div>
@endif @endif

View file

@ -43,14 +43,12 @@
</div> </div>
<div class="col-md-6" style="text-align:center;"> <div class="col-md-6" style="text-align:center;">
<hr /> <hr />
@can('power', $server) @can('power-start', $server)<button class="btn btn-success btn-sm disabled" data-attr="power" data-action="start">Start</button>@endcan
<button class="btn btn-success btn-sm disabled" data-attr="power" data-action="start">Start</button> @can('power-restart', $server)<button class="btn btn-primary btn-sm disabled" data-attr="power" data-action="restart">Restart</button>@endcan
<button class="btn btn-primary btn-sm disabled" data-attr="power" data-action="restart">Restart</button> @can('power-stop', $server)<button class="btn btn-danger btn-sm disabled" data-attr="power" data-action="stop">Stop</button>@endcan
<button class="btn btn-danger btn-sm disabled" data-attr="power" data-action="stop">Stop</button> @can('power-kill', $server)<button class="btn btn-danger btn-sm disabled" data-attr="power" data-action="kill"><i class="fa fa-ban" data-toggle="tooltip" data-placement="top" title="Kill Running Process"></i></button>@endcan
<button class="btn btn-danger btn-sm disabled" data-attr="power" data-action="kill"><i class="fa fa-ban" data-toggle="tooltip" data-placement="top" title="Kill Running Process"></i></button>
<button class="btn btn-primary btn-sm" data-toggle="modal" data-target="#pauseConsole" id="pause_console"><small><i class="fa fa-pause fa-fw"></i></small></button> <button class="btn btn-primary btn-sm" data-toggle="modal" data-target="#pauseConsole" id="pause_console"><small><i class="fa fa-pause fa-fw"></i></small></button>
<div id="pw_resp" style="display:none;margin-top: 15px;"></div> <div id="pw_resp" style="display:none;margin-top: 15px;"></div>
@endcan
</div> </div>
</div> </div>
<div class="row"> <div class="row">
@ -462,7 +460,6 @@ $(window).load(function () {
}); });
}); });
@endcan @endcan
@can('power', $server)
var can_run = true; var can_run = true;
function updateServerPowerControls (data) { function updateServerPowerControls (data) {
@ -541,8 +538,6 @@ $(window).load(function () {
}); });
}); });
} }
@endcan
}); });
$(document).ready(function () { $(document).ready(function () {