some ux work on permcats (Roles)

This commit is contained in:
Mike Macgirvin 2024-05-10 07:56:35 +10:00
parent 4ae8b41f8f
commit 2d4eef22d6
3 changed files with 30 additions and 7 deletions

View file

@ -177,6 +177,9 @@ class Permcat
if ($x) {
foreach ($x as $xv) {
$value = unserialise($xv['v']);
if ($this->system_override($permcats, $xv)) {
$permcats = $this->system_remove($permcats, $xv);
}
$permcats[] = [$xv['k'], $xv['k'], $value, 0];
}
}
@ -202,6 +205,27 @@ class Permcat
return $permcats;
}
public function system_override($permcats, $entry)
{
foreach ($permcats as $permcat) {
if (($entry['k'] === $permcat[0] || $entry['k'] === $permcat[1]) && $permcat[3]) {
return true;
}
}
return false;
}
public function system_remove($permcats, $entry)
{
$retval = [];
foreach ($permcats as $permcat) {
if (($entry['k'] === $permcat[0] || $entry['k'] === $permcat[1]) && $permcat[3]) {
continue;
}
$retval[] = $permcat;
}
return $retval;
}
public static function find_permcat($arr, $name)
{
if ($arr && $name) {

View file

@ -85,12 +85,10 @@ class Permcats
$permcats = [];
if ($pcatlist) {
foreach ($pcatlist as $pc) {
if (($pc['name']) && ($name) && ($pc['name'] == $name)) {
if (($pc['name']) && $name && ($pc['name'] == $name)) {
$existing = $pc['perms'];
}
if (!$pc['system']) {
$permcats[bin2hex($pc['name'])] = $pc['localname'];
}
$permcats[bin2hex($pc['name'])] = ['name' => $pc['localname'], 'system' => $pc['system']];
}
}

View file

@ -54,8 +54,9 @@
<table id="permcat-index">
{{foreach $permcats as $k => $v}}
<tr class="permcat-row-{{$k}}">
<td width="99%"><a href="settings/permcats/{{$k}}">{{$v}}</a></td>
<td width="1%"><i class="fa fa-trash-o drop-icons" onClick="dropItem('/settings/permcats/{{$k}}/drop', '.permcat-row-{{$k}}')"></i></td>
<td style="width:99%;"><a href="settings/permcats/{{$k}}">{{$v.name}}</a></td>
<td style="width:1%;">{{if $v.system}}&nbsp;{{else}}<i class="fa fa-trash-o drop-icons" onClick="dropItem('/settings/permcats/{{$k}}/drop', '.permcat-row-{{$k}}');"></i>{{/if}}</td>
</tr>
{{/foreach}}
</table>