Add NAS file manager integration and all pending platform changes

- Installed p7h/nas-file-manager package via private VCS repo
- Published config/nas-file-manager.php with super_admin middleware restriction
- Added NAS env vars to .env.example
- Created admin/nas-storage page with connection info panel and file browser widget
- Added NAS Storage link to admin sidebar (super_admin only)
- Added SuperAdminController@nasStorage method and admin.nas-storage route
- Includes all accumulated branch changes: profile wall, 2FA, audit logs,
  settings panel, country/phone/timezone components, posts, slideshow,
  playlist shares, video downloads/shares, comment likes, notifications,
  social links, and more

Co-Authored-By: Claude Sonnet 4.6 <[email protected]>
This commit is contained in:
ghassanandClaude Sonnet 4.6 committed 2026-05-13 13:24:32 +03:00
1 parent d44490dfe0
commit 0b2e95ea65
161 files changed
+27496 -7250

No files matched your search

+20 -4
View File
@@ -16,6 +16,7 @@ class Playlist extends Model
'thumbnail',
'visibility',
'is_default',
'share_token',
];
protected $casts = [
@@ -143,10 +144,10 @@ class Playlist extends Model
->first();
}
// Get shareable URL
// All share URLs use the unguessable token route
public function getShareUrlAttribute()
{
return route('playlists.show', $this->id);
return route('playlists.showByToken', $this->share_token);
}
// Scope for public playlists
@@ -178,7 +179,12 @@ class Playlist extends Model
return $this->visibility === 'private';
}
// Check if user can view this playlist
public function isUnlisted()
{
return $this->visibility === 'unlisted';
}
// Check if user can view this playlist via the ID route
public function canView($user = null)
{
// Owner can always view
@@ -186,10 +192,20 @@ class Playlist extends Model
return true;
}
// Public playlists can be viewed by anyone
// Only public playlists are accessible via the ID route
return $this->visibility === 'public';
}
// Check if user can view this playlist via the share-token route
public function canViewViaToken($user = null)
{
if ($user && $this->user_id === $user->id) {
return true;
}
return in_array($this->visibility, ['public', 'unlisted']);
}
// Check if user can edit this playlist
public function canEdit($user = null)
{