Skip to content

Commit c225f05

Browse files
committed
handle id and inner roles
1 parent eded549 commit c225f05

File tree

8 files changed

+66
-8
lines changed

8 files changed

+66
-8
lines changed

src/SDK/Language.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ protected function toUpperSnakeCase($str): string
140140

141141
public function isPermissionString(string $string): bool
142142
{
143-
$pattern = '/^\[("(read|update|delete|write)\(\\"[^\\"]+\\"\)"(,\s*)?)+\]$/';
143+
$pattern = '/^\["(read|update|delete|write)\(\\"[^\\"]+\\"\)"(,\s*"(read|update|delete|write)\(\\"[^\\"]+\\"\)")*\]$/';
144144
return preg_match($pattern, $string) === 1;
145145
}
146146

@@ -165,6 +165,8 @@ public function extractPermissionParts(string $string): array
165165
if (strpos($idString, '/') !== false) {
166166
$id = explode('/', $idString, 2)[0];
167167
$innerRole = explode('/', $idString, 2)[1];
168+
} else {
169+
$id = $idString;
168170
}
169171
} else {
170172
$role = $roleString;

src/SDK/Language/Dart.php

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,15 @@ public function getPermissionExample(string $example): string
256256
{
257257
$permissions = [];
258258
foreach ($this->extractPermissionParts($example) as $permission) {
259-
$permissions[] = 'Permission.' . $permission['action'] . '(Role.' . $permission['role'] . '())';
259+
$args = [];
260+
if ($permission['id'] !== null) {
261+
$args[] = "'" . $permission['id'] . "'";
262+
}
263+
if ($permission['innerRole'] !== null) {
264+
$args[] = "'" . $permission['innerRole'] . "'";
265+
}
266+
$argsString = implode(', ', $args);
267+
$permissions[] = 'Permission.' . $permission['action'] . '(Role.' . $permission['role'] . '(' . $argsString . '))';
260268
}
261269
return '[' . implode(', ', $permissions) . ']';
262270
}

src/SDK/Language/Deno.php

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,15 @@ public function getPermissionExample(string $example): string
193193
{
194194
$permissions = [];
195195
foreach ($this->extractPermissionParts($example) as $permission) {
196-
$permissions[] = 'Permission.' . $permission['action'] . '(Role.' . $permission['role'] . '())';
196+
$args = [];
197+
if ($permission['id'] !== null) {
198+
$args[] = "'" . $permission['id'] . "'";
199+
}
200+
if ($permission['innerRole'] !== null) {
201+
$args[] = "'" . $permission['innerRole'] . "'";
202+
}
203+
$argsString = implode(', ', $args);
204+
$permissions[] = 'Permission.' . $permission['action'] . '(Role.' . $permission['role'] . '(' . $argsString . '))';
197205
}
198206
return '[' . implode(', ', $permissions) . ']';
199207
}

src/SDK/Language/DotNet.php

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -316,7 +316,15 @@ public function getPermissionExample(string $example): string
316316
{
317317
$permissions = [];
318318
foreach ($this->extractPermissionParts($example) as $permission) {
319-
$permissions[] = 'Permission.' . ucfirst($permission['action']) . '(Role.' . ucfirst($permission['role']) . '())';
319+
$args = [];
320+
if ($permission['id'] !== null) {
321+
$args[] = '"' . $permission['id'] . '"';
322+
}
323+
if ($permission['innerRole'] !== null) {
324+
$args[] = '"' . $permission['innerRole'] . '"';
325+
}
326+
$argsString = implode(', ', $args);
327+
$permissions[] = 'Permission.' . ucfirst($permission['action']) . '(Role.' . ucfirst($permission['role']) . '(' . $argsString . '))';
320328
}
321329
return 'new List<string> { ' . implode(', ', $permissions) . ' }';
322330
}

src/SDK/Language/PHP.php

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -383,7 +383,15 @@ public function getPermissionExample(string $example): string
383383
{
384384
$permissions = [];
385385
foreach ($this->extractPermissionParts($example) as $permission) {
386-
$permissions[] = 'Permission::' . $permission['action'] . '(Role::' . $permission['role'] . '())';
386+
$args = [];
387+
if ($permission['id'] !== null) {
388+
$args[] = '"' . $permission['id'] . '"';
389+
}
390+
if ($permission['innerRole'] !== null) {
391+
$args[] = '"' . $permission['innerRole'] . '"';
392+
}
393+
$argsString = implode(', ', $args);
394+
$permissions[] = 'Permission::' . $permission['action'] . '(Role::' . $permission['role'] . '(' . $argsString . '))';
387395
}
388396
return '[' . implode(', ', $permissions) . ']';
389397
}

src/SDK/Language/Ruby.php

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -329,7 +329,15 @@ public function getPermissionExample(string $example): string
329329
{
330330
$permissions = [];
331331
foreach ($this->extractPermissionParts($example) as $permission) {
332-
$permissions[] = 'Permission.' . $permission['action'] . '(Role.' . $permission['role'] . '())';
332+
$args = [];
333+
if ($permission['id'] !== null) {
334+
$args[] = "'" . $permission['id'] . "'";
335+
}
336+
if ($permission['innerRole'] !== null) {
337+
$args[] = "'" . $permission['innerRole'] . "'";
338+
}
339+
$argsString = implode(', ', $args);
340+
$permissions[] = 'Permission.' . $permission['action'] . '(Role.' . $permission['role'] . '(' . $argsString . '))';
333341
}
334342
return '[' . implode(', ', $permissions) . ']';
335343
}

src/SDK/Language/Swift.php

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -454,7 +454,15 @@ public function getPermissionExample(string $example): string
454454
{
455455
$permissions = [];
456456
foreach ($this->extractPermissionParts($example) as $permission) {
457-
$permissions[] = 'Permission.' . $permission['action'] . '(Role.' . $permission['role'] . '())';
457+
$args = [];
458+
if ($permission['id'] !== null) {
459+
$args[] = '"' . $permission['id'] . '"';
460+
}
461+
if ($permission['innerRole'] !== null) {
462+
$args[] = '"' . $permission['innerRole'] . '"';
463+
}
464+
$argsString = implode(', ', $args);
465+
$permissions[] = 'Permission.' . $permission['action'] . '(Role.' . $permission['role'] . '(' . $argsString . '))';
458466
}
459467
return '[' . implode(', ', $permissions) . ']';
460468
}

src/SDK/Language/Web.php

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,15 @@ public function getPermissionExample(string $example): string
167167
{
168168
$permissions = [];
169169
foreach ($this->extractPermissionParts($example) as $permission) {
170-
$permissions[] = 'Permission.' . $permission['action'] . '(' . 'Role.' . $permission['role'] . '(' . ')' . ')';
170+
$args = [];
171+
if ($permission['id'] !== null) {
172+
$args[] = "'" . $permission['id'] . "'";
173+
}
174+
if ($permission['innerRole'] !== null) {
175+
$args[] = "'" . $permission['innerRole'] . "'";
176+
}
177+
$argsString = implode(', ', $args);
178+
$permissions[] = 'Permission.' . $permission['action'] . '(Role.' . $permission['role'] . '(' . $argsString . '))';
171179
}
172180
return '[' . implode(', ', $permissions) . ']';
173181
}

0 commit comments

Comments
 (0)