Skip to content

Commit 0f4648b

Browse files
committed
Fixes adding api keys a little more
1 parent 53ec2c5 commit 0f4648b

File tree

1 file changed

+23
-14
lines changed

1 file changed

+23
-14
lines changed

app/Repositories/APIRepository.php

Lines changed: 23 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -159,26 +159,31 @@ public function new(array $data)
159159
]);
160160
$key->save();
161161

162-
foreach($data['permissions'] as $permNode) {
163-
if (!strpos($permNode, ':')) continue;
164-
165-
list($toss, $permission) = explode(':', $permNode);
166-
if (in_array('api.user.' . $permission, $this->permissions['user'])) {
167-
$model = new Models\APIPermission;
168-
$model->fill([
169-
'key_id' => $key->id,
170-
'permission' => 'api.user.' . $permission
171-
]);
172-
$model->save();
162+
$totalPermissions = 0;
163+
if (isset($data['permissions'])) {
164+
foreach($data['permissions'] as $permNode) {
165+
if (!strpos($permNode, ':')) continue;
166+
167+
list($toss, $permission) = explode(':', $permNode);
168+
if (in_array($permission, $this->permissions['user'])) {
169+
$totalPermissions++;
170+
$model = new Models\APIPermission;
171+
$model->fill([
172+
'key_id' => $key->id,
173+
'permission' => 'api.user.' . $permission
174+
]);
175+
$model->save();
176+
}
173177
}
174178
}
175179

176-
if ($this->user->root_admin === 1) {
177-
foreach($data['permissions'] as $permNode) {
180+
if ($this->user->root_admin === 1 && isset($data['adminPermissions'])) {
181+
foreach($data['adminPermissions'] as $permNode) {
178182
if (!strpos($permNode, ':')) continue;
179183

180184
list($toss, $permission) = explode(':', $permNode);
181-
if (in_array('api.admin.' . $permission, $this->permissions['admin'])) {
185+
if (in_array($permission, $this->permissions['admin'])) {
186+
$totalPermissions++;
182187
$model = new Models\APIPermission;
183188
$model->fill([
184189
'key_id' => $key->id,
@@ -189,6 +194,10 @@ public function new(array $data)
189194
}
190195
}
191196

197+
if ($totalPermissions < 1) {
198+
throw new DisplayException('No valid permissions were passed.');
199+
}
200+
192201
DB::commit();
193202
return $secretKey;
194203
} catch (\Exception $ex) {

0 commit comments

Comments
 (0)