{{-- resources/views/superadmin/falcon/passwords/index.blade.php --}} @extends('layouts.superadmin') @section('title','غرفة الصقر — إدارة كلمات مرور الأعضاء') @section('page-title','غرفة الصقر — إدارة كلمات مرور الأعضاء') @section('content') @php use Illuminate\Contracts\Pagination\Paginator as PaginatorContract; // يدعم Paginator أو Collection: $users = $users ?? collect(); $paginator = ($users instanceof PaginatorContract) ? $users : null; $collection = $paginator ? $paginator->getCollection() : collect($users); // تجميع حسب العضوية لعرض أقسام واضحة $labels = [ 'moderator' => ['bg'=>'from-blue-50 to-blue-100 dark:from-blue-900/30 dark:to-blue-800/30', 'border'=>'border-blue-500', 'title'=>'المشرفون'], 'official' => ['bg'=>'from-emerald-50 to-emerald-100 dark:from-emerald-900/30 dark:to-emerald-800/30','border'=>'border-emerald-500','title'=>'الأعضاء الرسميون'], 'beta' => ['bg'=>'from-amber-50 to-amber-100 dark:from-amber-900/30 dark:to-amber-800/30', 'border'=>'border-amber-500', 'title'=>'أعضاء بيتا'], 'advisor' => ['bg'=>'from-violet-50 to-violet-100 dark:from-violet-900/30 dark:to-violet-800/30','border'=>'border-violet-500', 'title'=>'المستشارون'], 'super-admin' => ['bg'=>'from-rose-50 to-rose-100 dark:from-rose-900/30 dark:to-rose-800/30', 'border'=>'border-rose-500', 'title'=>'الإدارة العليا'], '' => ['bg'=>'from-gray-50 to-gray-100 dark:from-gray-800/50 dark:to-gray-800/50', 'border'=>'border-gray-500', 'title'=>'غير مُصنّف'], ]; $groups = $collection->groupBy(fn($u)=>$u->membership_status ?? ''); // كلمة مؤقتة من السيشن (fallback في حال عدم تفعيل JS) $tempPasswordJustSet = session('temp_password'); @endphp
{{-- HERO --}}

غرفة الصقر — إدارة كلمات مرور الأعضاء

غيّر كلمة المرور لأي عضو: حفظ يدوي مع تأكيد، أو توليد كلمة مؤقتة تُعرض مرة واحدة فقط ثم تُشفّر مباشرة.

{{-- تنبيهات تقليدية (fallback لغير AJAX) --}} @if(session('success') || session('error') || $errors->any())
@if(session('success'))
{{ session('success') }}
@endif @if(session('error'))
{{ session('error') }}
@endif @if($errors->any())
    @foreach($errors->all() as $e)
  • {{ $e }}
  • @endforeach
@endif
@endif {{-- كروت أرقام سريعة --}}

عناصر معروضة الآن

{{ ($collection ?? collect())->count() }}

فلتر العضوية

{{ request('membership_status') ?: 'الكل' }}

فلتر الحالة

{{ request('account_status') ?: 'الكل' }}

• “حفظ” = كلمة جديدة مع تأكيد. “كلمة مؤقتة” = توليد قوي يظهر مرة واحدة فقط.
{{-- صندوق كلمة مؤقتة: Fallback من السيشن --}} @if(!empty($tempPasswordJustSet))
كلمة مؤقتة — انسخها الآن
{{ $tempPasswordJustSet }}

لن تظهر هذه الكلمة مرة أخرى بعد تحديث الصفحة.

@endif {{-- صندوق كلمة مؤقتة: عرض مباشر عبر AJAX (مخفي افتراضيًا) --}}
{{-- شريط البحث والفلاتر --}}
{{-- أقسام حسب العضوية + بطاقات --}}
@forelse($groups as $key => $members) @php $sty = $labels[$key] ?? $labels['']; @endphp

{{ $sty['title'] }}

{{ $members->count() }} عضو

@foreach($members as $u) @php $avatarUrl = $u->avatar_url ?? (!empty($u->avatar) ? asset('storage/avatars/'.$u->avatar) : null); $status = $u->account_status ?? 'active'; @endphp
@if($avatarUrl) @else
{{ mb_substr($u->name ?? '؟',0,1) }}
@endif @if(($u->is_online ?? false) && $status === 'active') @endif
{{ $u->name }}
{{ $u->username }} • {{ $u->email }}
@if($status !== 'active') {{ $status === 'suspended' ? 'معلّق' : 'محظور' }} @endif
{{-- نماذج كلمة المرور --}}
{{-- حفظ يدوي --}}
@csrf
{{-- كلمة مؤقتة --}}
@csrf
@if(!empty($u->password_changed_at))
آخر تغيير: {{ \Illuminate\Support\Carbon::parse($u->password_changed_at)->diffForHumans() }}
@endif
@endforeach
@empty

لا توجد نتائج مطابقة حالياً.

@endforelse
{{-- Pagination --}} @if($paginator && $paginator->hasPages())
{{ $paginator->withQueryString()->links('pagination::tailwind') }}
@endif
{{-- سكربتات الصفحة --}} @endsection