Skip to content

Commit a2fc511

Browse files
committed
Add permissions for filemanager stuff to subusers
1 parent a43ba24 commit a2fc511

File tree

7 files changed

+501
-365
lines changed

7 files changed

+501
-365
lines changed

app/Policies/ServerPolicy.php

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,70 @@ public function saveFiles(User $user, Server $server)
209209
return $user->permissions()->server($server)->permission('save-files')->exists();
210210
}
211211

212+
/**
213+
* Check if user has permission to move and rename files and folders on a server.
214+
*
215+
* @param Pterodactyl\Models\User $user
216+
* @param Pterodactyl\Models\Server $server
217+
* @return boolean
218+
*/
219+
public function moveFiles(User $user, Server $server)
220+
{
221+
if ($this->isOwner($user, $server)) {
222+
return true;
223+
}
224+
225+
return $user->permissions()->server($server)->permission('move-files')->exists();
226+
}
227+
228+
/**
229+
* Check if user has permission to copy folders and files on a server.
230+
*
231+
* @param Pterodactyl\Models\User $user
232+
* @param Pterodactyl\Models\Server $server
233+
* @return boolean
234+
*/
235+
public function copyFiles(User $user, Server $server)
236+
{
237+
if ($this->isOwner($user, $server)) {
238+
return true;
239+
}
240+
241+
return $user->permissions()->server($server)->permission('copy-files')->exists();
242+
}
243+
244+
/**
245+
* Check if user has permission to compress files and folders on a server.
246+
*
247+
* @param Pterodactyl\Models\User $user
248+
* @param Pterodactyl\Models\Server $server
249+
* @return boolean
250+
*/
251+
public function compressFiles(User $user, Server $server)
252+
{
253+
if ($this->isOwner($user, $server)) {
254+
return true;
255+
}
256+
257+
return $user->permissions()->server($server)->permission('compress-files')->exists();
258+
}
259+
260+
/**
261+
* Check if user has permission to decompress files on a server.
262+
*
263+
* @param Pterodactyl\Models\User $user
264+
* @param Pterodactyl\Models\Server $server
265+
* @return boolean
266+
*/
267+
public function decompressFiles(User $user, Server $server)
268+
{
269+
if ($this->isOwner($user, $server)) {
270+
return true;
271+
}
272+
273+
return $user->permissions()->server($server)->permission('decompress-files')->exists();
274+
}
275+
212276
/**
213277
* Check if user has permission to add files to a server.
214278
*

app/Repositories/ServerRepository.php

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -41,19 +41,7 @@ class ServerRepository
4141
{
4242

4343
protected $daemonPermissions = [
44-
's:get',
45-
's:power:start',
46-
's:power:stop',
47-
's:power:restart',
48-
's:power:kill',
49-
's:console',
50-
's:command',
51-
's:files:get',
52-
's:files:read',
53-
's:files:post',
54-
's:files:delete',
55-
's:files:upload',
56-
's:set-password'
44+
's:*'
5745
];
5846

5947
public function __construct()

app/Repositories/SubuserRepository.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,10 @@ class SubuserRepository
7171
'download-files' => null,
7272
'upload-files' => 's:files:upload',
7373
'delete-files' => 's:files:delete',
74+
'move-files' => 's:files:move',
75+
'copy-files' => 's:files:copy',
76+
'compress-files' => 's:files:compress',
77+
'decompress-files' => 's:files:decompress',
7478

7579
// Subusers
7680
'list-subusers' => null,

0 commit comments

Comments
 (0)