diff --git a/src/Database/Filters/Types/UserFilter.php b/src/Database/Filters/Types/UserFilter.php index d2ebd21..74a8277 100644 --- a/src/Database/Filters/Types/UserFilter.php +++ b/src/Database/Filters/Types/UserFilter.php @@ -47,7 +47,7 @@ final class UserFilter extends AbstractFilter{ protected function getSortingFields(): array{ return [ new Field('name', 'u'), - new Field('role_title'), + new Field('role_order'), new Field('date_registered', 'u') ]; } diff --git a/src/Database/Tables/UserTable.php b/src/Database/Tables/UserTable.php index 005a5c4..f6ac100 100644 --- a/src/Database/Tables/UserTable.php +++ b/src/Database/Tables/UserTable.php @@ -95,7 +95,7 @@ SQL; $filter ??= UserFilter::empty(); $sql = <<<SQL -SELECT u.id, u.name, u.email, sr.id AS role_id, sr.title AS role_title, u.admin, u.date_registered +SELECT u.id, u.name, u.email, sr.id AS role_id, sr.title AS role_title, IF(u.admin, 0, IFNULL(sr.ordering, ~0)) AS role_order, u.admin, u.date_registered FROM users u LEFT JOIN system_roles sr ON u.role_id = sr.id SQL; diff --git a/src/Pages/Models/Root/UsersModel.php b/src/Pages/Models/Root/UsersModel.php index 81e8537..84ccc5a 100644 --- a/src/Pages/Models/Root/UsersModel.php +++ b/src/Pages/Models/Root/UsersModel.php @@ -67,7 +67,7 @@ class UsersModel extends BasicRootPageModel{ $table->addColumn('Username')->sort('name')->width(80)->wrap()->bold(); } - $table->addColumn('Role')->sort('role_title')->width(20); + $table->addColumn('Role')->sort('role_order')->width(20); $table->addColumn('Registration Time')->sort('date_registered')->tight()->right(); if ($this->perms->check(SystemPermissions::MANAGE_USERS)){ @@ -93,7 +93,7 @@ class UsersModel extends BasicRootPageModel{ } /** @noinspection ProperNullCoalescingOperatorUsageInspection */ - $row[] = $user->getRoleTitleSafe() ?? Text::missing('Default'); + $row[] = $user->isAdmin() ? Text::missing('Admin') : ($user->getRoleTitleSafe() ?? Text::missing('Default')); $row[] = new DateTimeComponent($user->getRegistrationDate()); $can_edit = (