diff --git a/app/Http/Controllers/Server/SubuserController.php b/app/Http/Controllers/Server/SubuserController.php index 48de4621d..69db75bf7 100644 --- a/app/Http/Controllers/Server/SubuserController.php +++ b/app/Http/Controllers/Server/SubuserController.php @@ -55,7 +55,7 @@ class SubuserController extends Controller return view('server.users.index', [ 'server' => $server, 'node' => Models\Node::find($server->node), - 'subusers' => Models\Subuser::select('subusers.*', 'users.email as a_userEmail') + 'subusers' => Models\Subuser::select('subusers.*', 'users.email', 'users.username') ->join('users', 'users.id', '=', 'subusers.user_id') ->where('server_id', $server->id) ->get(), diff --git a/public/themes/pterodactyl/css/pterodactyl.css b/public/themes/pterodactyl/css/pterodactyl.css index 4d1e94bf0..f9e8d8a75 100644 --- a/public/themes/pterodactyl/css/pterodactyl.css +++ b/public/themes/pterodactyl/css/pterodactyl.css @@ -113,3 +113,11 @@ td.has-progress { color: #cccccc; height: 0; } + +.box-header > .form-group { + margin-bottom: 0; +} + +.box-header > .form-group > div > p.small { + margin: 0; +} diff --git a/resources/lang/en/server.php b/resources/lang/en/server.php index e0fe67ad2..656430dac 100644 --- a/resources/lang/en/server.php +++ b/resources/lang/en/server.php @@ -6,6 +6,166 @@ return [ 'header' => 'Server Console', 'header_sub' => 'Control your server in real time.', ], + 'users' => [ + 'header' => 'Manage Users', + 'header_sub' => 'Control who can access your server.', + 'configure' => 'Configure Permissions', + 'list' => 'Accounts with Access', + 'add' => 'Add New Subuser', + 'new' => [ + 'header' => 'Add New User', + 'header_sub' => 'Add a new user with permissions to this server.', + 'email' => 'Email Address', + 'email_help' => 'Enter the email address for the user you wish to invite to manage this server.', + 'power_header' => 'Power Management', + 'file_header' => 'File Management', + 'subuser_header' => 'Subuser Management', + 'server_header' => 'Server Management', + 'task_header' => 'Task Management', + 'sftp_header' => 'SFTP Management', + 'db_header' => 'Database Management', + 'start' => [ + 'title' => 'Start Server', + 'description' => 'Allows user to start the server.', + ], + 'stop' => [ + 'title' => 'Stop Server', + 'description' => 'Allows user to stop the server.', + ], + 'restart' => [ + 'title' => 'Stop Server', + 'description' => 'Allows user to restart the server.', + ], + 'kill' => [ + 'title' => 'Stop Server', + 'description' => 'Allows user to kill the server process.', + ], + 'command' => [ + 'title' => 'Send Console Command', + 'description' => 'Allows sending a command from the console. If the user does not have stop or restart permissions they cannot send the application\'s stop command.', + ], + 'list_files' => [ + 'title' => 'List Files', + 'description' => 'Allows user to list all files and folders on the server but not view file contents.', + ], + 'edit_files' => [ + 'title' => 'Edit Files', + 'description' => 'Allows user to open a file for viewing only.', + ], + 'save_files' => [ + 'title' => 'Save Files', + 'description' => 'Allows user to save modified file contents.', + ], + 'move_files' => [ + 'title' => 'Rename & Move Files', + 'description' => 'Allows user to move and rename files and folders on the filesystem.', + ], + 'copy_files' => [ + 'title' => 'Copy Files', + 'description' => 'Allows user to copy files and folders on the filesystem.', + ], + 'compress_files' => [ + 'title' => 'Compress Files', + 'description' => 'Allows user to make archives of files and folders on the system.', + ], + 'decompress_files' => [ + 'title' => 'Decompress Files', + 'description' => 'Allows user to decompress .zip and .tar(.gz) archives.', + ], + 'create_files' => [ + 'title' => 'Create Files', + 'description' => 'Allows user to create a new file within the panel.', + ], + 'upload_files' => [ + 'title' => 'Upload Files', + 'description' => 'Allows user to upload files through the file manager.', + ], + 'delete_files' => [ + 'title' => 'Delete Files', + 'description' => 'Allows user to delete files from the system.', + ], + 'download_files' => [ + 'title' => 'Download Files', + 'description' => 'Allows user to download files. If a user is given this permission they can download and view file contents even if that permission is not assigned on the panel.', + ], + 'list_subusers' => [ + 'title' => 'List Subusers', + 'description' => 'Allows user to view a listing of all subusers assigned to the server.', + ], + 'view_subuser' => [ + 'title' => 'View Subuser', + 'description' => 'Allows user to view permissions assigned to subusers.', + ], + 'edit_subuser' => [ + 'title' => 'Edit Subuser', + 'description' => 'Allows a user to edit permissions assigned to other subusers.', + ], + 'create_subuser' => [ + 'title' => 'Create Subuser', + 'description' => 'Allows user to create additional subusers on the server.', + ], + 'delete_subuser' => [ + 'title' => 'Delete Subuser', + 'description' => 'Allows a user to delete other subusers on the server.', + ], + 'set_connection' => [ + 'title' => 'Set Default Connection', + 'description' => 'Allows user to set the default connection used for a server as well as view avaliable ports.', + ], + 'view_startup' => [ + 'title' => 'View Startup Command', + 'description' => 'Allows user to view the startup command and associated variables for a server.', + ], + 'edit_startup' => [ + 'title' => 'Edit Startup Command', + 'description' => 'Allows a user to modify startup variables for a server.', + ], + 'list_tasks' => [ + 'title' => 'List Tasks', + 'description' => 'Allows a user to list all tasks (enabled and disabled) on a server.', + ], + 'view_task' => [ + 'title' => 'View Task', + 'description' => 'Allows a user to view a specific task\'s details.', + ], + 'toggle_task' => [ + 'title' => 'Toggle Task', + 'description' => 'Allows a user to toggle a task on or off.', + ], + 'queue_task' => [ + 'title' => 'Queue Task', + 'description' => 'Allows a user to queue a task to run on next cycle.', + ], + 'create_task' => [ + 'title' => 'Create Task', + 'description' => 'Allows a user to create new tasks.', + ], + 'delete_task' => [ + 'title' => 'Delete Task', + 'description' => 'Allows a user to delete a task.', + ], + 'view_sftp' => [ + 'title' => 'View SFTP Details', + 'description' => 'Allows user to view the server\'s SFTP information but not the password.', + ], + 'view_sftp_password' => [ + 'title' => 'View SFTP Password', + 'description' => 'Allows user to view the SFTP password for the server.', + ], + 'reset_sftp' => [ + 'title' => 'Reset SFTP Password', + 'description' => 'Allows user to change the SFTP password for the server.', + ], + 'view_databases' => [ + 'title' => 'View Database Details', + 'description' => 'Allows user to view all databases associated with this server including the usernames and passwords for the databases.', + ], + 'reset_db_password' => [ + 'title' => 'Reset Database Password', + 'description' => 'Allows a user to reset passwords for databases.', + ], + ], + ], 'files' => [ 'header' => 'File Manager', 'header_sub' => 'Manage all of your files directly from the web.', diff --git a/resources/lang/en/strings.php b/resources/lang/en/strings.php index 01062a6de..324f956a9 100644 --- a/resources/lang/en/strings.php +++ b/resources/lang/en/strings.php @@ -50,4 +50,5 @@ return [ 'make_primary' => 'Make Primary', 'none' => 'None', 'cancel' => 'Cancel', + 'created_at' => 'Created At', ]; diff --git a/resources/themes/pterodactyl/server/users/index.blade.php b/resources/themes/pterodactyl/server/users/index.blade.php new file mode 100644 index 000000000..6e63bd10d --- /dev/null +++ b/resources/themes/pterodactyl/server/users/index.blade.php @@ -0,0 +1,86 @@ +{{-- Copyright (c) 2015 - 2016 Dane Everitt --}} + +{{-- Permission is hereby granted, free of charge, to any person obtaining a copy --}} +{{-- of this software and associated documentation files (the "Software"), to deal --}} +{{-- in the Software without restriction, including without limitation the rights --}} +{{-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell --}} +{{-- copies of the Software, and to permit persons to whom the Software is --}} +{{-- furnished to do so, subject to the following conditions: --}} + +{{-- The above copyright notice and this permission notice shall be included in all --}} +{{-- copies or substantial portions of the Software. --}} + +{{-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR --}} +{{-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, --}} +{{-- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE --}} +{{-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER --}} +{{-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, --}} +{{-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE --}} +{{-- SOFTWARE. --}} +@extends('layouts.master') + +@section('title') + @lang('server.users.header') +@endsection + +@section('content-header') +

@lang('server.users.header')@lang('server.users.header_sub')

+ +@endsection + +@section('content') +
+
+
+
+

@lang('server.users.list')

+
+
+ + + + + + + + @can('view-subuser', $server)@endcan + @can('delete-subuser', $server)@endcan + + @foreach($subusers as $user) + + + + + @can('view-subuser', $server) + + @endcan + @can('delete-subuser', $server) + + @endcan + + @endforeach + +
@lang('strings.username')@lang('strings.email')
User Image{{ $user->username }} + {{ $user->email }} + + + + + + + +
+
+ @can('create-subuser', $server) + + @endcan +
+
+
+@endsection diff --git a/resources/themes/pterodactyl/server/users/new.blade.php b/resources/themes/pterodactyl/server/users/new.blade.php new file mode 100644 index 000000000..3ee194c45 --- /dev/null +++ b/resources/themes/pterodactyl/server/users/new.blade.php @@ -0,0 +1,412 @@ +{{-- Copyright (c) 2015 - 2016 Dane Everitt --}} + +{{-- Permission is hereby granted, free of charge, to any person obtaining a copy --}} +{{-- of this software and associated documentation files (the "Software"), to deal --}} +{{-- in the Software without restriction, including without limitation the rights --}} +{{-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell --}} +{{-- copies of the Software, and to permit persons to whom the Software is --}} +{{-- furnished to do so, subject to the following conditions: --}} + +{{-- The above copyright notice and this permission notice shall be included in all --}} +{{-- copies or substantial portions of the Software. --}} + +{{-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR --}} +{{-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, --}} +{{-- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE --}} +{{-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER --}} +{{-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, --}} +{{-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE --}} +{{-- SOFTWARE. --}} +@extends('layouts.master') + +@section('title') + @lang('server.users.new.header') +@endsection + +@section('content-header') +

@lang('server.users.new.header')@lang('server.users.new.header_sub')

+ +@endsection + +@section('content') + +
+
+
+
+
+
+ +
+ +

@lang('server.users.new.email_help')

+
+
+
+ +
+
+
+
+
+ {{-- Left Side --}} +
+
+
+
+

@lang('server.users.new.power_header')

+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+
+
+
+
+
+

@lang('server.users.new.subuser_header')

+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+
+
+
+
+
+

@lang('server.users.new.server_header')

+
+
+
+ +
+
+ +
+
+ +
+
+
+
+
+
+
+
+
+

@lang('server.users.new.sftp_header')

+
+
+
+ +
+
+ +
+
+ +
+
+
+
+
+
+
+ {{-- Right Side --}} +
+
+
+
+

@lang('server.users.new.file_header')

+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+
+
+
+
+
+

@lang('server.users.new.task_header')

+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+
+
+
+
+
+

@lang('server.users.new.db_header')

+
+
+
+ +
+
+ +
+
+
+
+
+
+
+
+@endsection + +@section('footer-scripts') + @parent + +@endsection