Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 429cd44ac5 | |||
| 274f210337 |
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "dashboard/unifi",
|
"name": "dashboard/unifi",
|
||||||
"description": "UniFi network management, WiFi stats, and captive portal authentication for the Dashboard platform",
|
"description": "UniFi network management, WiFi stats, and captive portal authentication for the Dashboard platform",
|
||||||
"version": "1.11.1",
|
"version": "1.12.1",
|
||||||
"type": "library",
|
"type": "library",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"autoload": {
|
"autoload": {
|
||||||
|
|||||||
@@ -25,6 +25,31 @@ class UnifiServiceProvider extends ServiceProvider
|
|||||||
$this->loadRoutesFrom(__DIR__ . '/routes/unifi.php');
|
$this->loadRoutesFrom(__DIR__ . '/routes/unifi.php');
|
||||||
$this->loadMigrationsFrom(__DIR__ . '/../database/migrations');
|
$this->loadMigrationsFrom(__DIR__ . '/../database/migrations');
|
||||||
|
|
||||||
|
// Tell the shell's NavVisibilityRegistry which unifi nav items
|
||||||
|
// the user can see in the sidebar. Without this the sidebar
|
||||||
|
// would only follow legacy required_permission, hiding pages
|
||||||
|
// the user has been explicitly granted via the Access tab.
|
||||||
|
try {
|
||||||
|
app(\App\Support\NavVisibilityRegistry::class)->register(
|
||||||
|
'unifi.',
|
||||||
|
function (\App\Models\User $user) {
|
||||||
|
if (! \Illuminate\Support\Facades\Schema::hasTable('unifi_page_grants')) {
|
||||||
|
return collect();
|
||||||
|
}
|
||||||
|
$groupIds = $user->groups()->pluck('groups.id');
|
||||||
|
return UnifiPageGrant::query()
|
||||||
|
->where(function ($q) use ($user, $groupIds) {
|
||||||
|
$q->where(fn ($u) => $u->where('grantee_type', 'user')->where('grantee_id', $user->id))
|
||||||
|
->orWhere(fn ($g) => $g->where('grantee_type', 'group')->whereIn('grantee_id', $groupIds));
|
||||||
|
})
|
||||||
|
->pluck('nav_item_id');
|
||||||
|
}
|
||||||
|
);
|
||||||
|
} catch (\Throwable) {
|
||||||
|
// Shell may not have the registry yet (older shell version).
|
||||||
|
// Sidebar will fall back to legacy permission filter.
|
||||||
|
}
|
||||||
|
|
||||||
// Per-page access enforcement for unifi routes. If a unifi page has
|
// Per-page access enforcement for unifi routes. If a unifi page has
|
||||||
// any UnifiPageGrant rows, only super-admins and granted users/
|
// any UnifiPageGrant rows, only super-admins and granted users/
|
||||||
// groups can hit it; otherwise (no grants) it's open per the existing
|
// groups can hit it; otherwise (no grants) it's open per the existing
|
||||||
|
|||||||
Reference in New Issue
Block a user