Skip to content

Commit 2f42396

Browse files
committed
Fix bug with permissions including more than one dash, closes pterodactyl#727
1 parent 30ab6ed commit 2f42396

File tree

2 files changed

+8
-6
lines changed

2 files changed

+8
-6
lines changed

app/Services/Api/KeyCreationService.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ public function handle(array $data, array $permissions, array $administrative =
8686
$nodes = $this->permissionService->getPermissions();
8787

8888
foreach ($permissions as $permission) {
89-
@list($block, $search) = explode('-', $permission);
89+
@list($block, $search) = explode('-', $permission, 2);
9090

9191
if (
9292
(empty($block) || empty($search)) ||
@@ -100,7 +100,7 @@ public function handle(array $data, array $permissions, array $administrative =
100100
}
101101

102102
foreach ($administrative as $permission) {
103-
@list($block, $search) = explode('-', $permission);
103+
@list($block, $search) = explode('-', $permission, 2);
104104

105105
if (
106106
(empty($block) || empty($search)) ||

tests/Unit/Services/Api/KeyCreationServiceTest.php

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -82,19 +82,21 @@ public function testKeyIsCreated()
8282
], true, true)->once()->andReturn((object) ['id' => 1]);
8383

8484
$this->permissions->shouldReceive('getPermissions')->withNoArgs()->once()->andReturn([
85-
'_user' => ['server' => ['list']],
86-
'server' => ['create'],
85+
'_user' => ['server' => ['list', 'multiple-dash-test']],
86+
'server' => ['create', 'admin-dash-test'],
8787
]);
8888

8989
$this->permissions->shouldReceive('create')->with(1, 'user.server-list')->once()->andReturnNull();
90+
$this->permissions->shouldReceive('create')->with(1, 'user.server-multiple-dash-test')->once()->andReturnNull();
9091
$this->permissions->shouldReceive('create')->with(1, 'server-create')->once()->andReturnNull();
92+
$this->permissions->shouldReceive('create')->with(1, 'server-admin-dash-test')->once()->andReturnNull();
9193

9294
$this->connection->shouldReceive('commit')->withNoArgs()->once()->andReturnNull();
9395

9496
$response = $this->service->handle(
9597
['test-data' => 'test'],
96-
['invalid-node', 'server-list'],
97-
['invalid-node', 'server-create']
98+
['invalid-node', 'server-list', 'server-multiple-dash-test'],
99+
['invalid-node', 'server-create', 'server-admin-dash-test']
98100
);
99101

100102
$this->assertNotEmpty($response);

0 commit comments

Comments
 (0)