@extends('admin.layouts.app') @section('title', '관리자 정보 수정') @section('content') @php $ip = !empty($admin->last_login_ip) ? inet_ntop($admin->last_login_ip) : '-'; $lockedUntil = $admin->locked_until ?? null; $isLocked = false; if (!empty($lockedUntil)) { try { $isLocked = \Carbon\Carbon::parse($lockedUntil)->isFuture(); } catch (\Throwable $e) { $isLocked = true; // 파싱 실패 시 보수적으로 잠김 처리 } } $lockLabel = (string)($admin->locked_until ?? ''); $lockLabelLabel = $lockLabel === "" ? '계정정상' : '계정잠금'; $lockLabelColor = $lockLabel === "" ? '#2b7fff' : '#ff4d4f'; $st = (string)($admin->status ?? 'active'); $statusLabel = $st === 'active' ? '활성' : '비활성'; $statusColor = $st === 'active' ? '#2b7fff' : '#ff4d4f'; @endphp {{-- ===== 상단 정보 패널 ===== --}}
관리자번호/이메일
{{ $admin->id ?? '-' }} / {{ $admin->email ?? '-' }}
현재 역할
@forelse($roles as $rr) {{ $rr['name'] ?? ($rr['code'] ?? '-') }} @empty - @endforelse
상태
{{ $statusLabel }} @if($st !== 'active') (관리자 로그인 불가) @endif
계정상태
{{ $lockLabelLabel }}
※ 로그인 비밀번호 3회 연속 실패 시 계정이 잠깁니다.
로그인 실패 횟수
{{ (int)($admin->failed_login_count ?? 0) }}
마지막 로그인 아이피
{{ $ip }}
마지막 로그인 시간
{{ $admin->last_login_at ?? '-' }}
관리자 생성 일시
{{ $admin->created_at ?? '-' }}
최근 정보수정일
{{ $admin->updated_at ?? '-' }}
비활성화 처리자
{{ $admin->deleted_by ?? '-' }}
{{-- ===== 수정 폼(단 하나) ===== --}}
@csrf
※ 저장 시 phone_hash + phone_enc 갱신
@if(empty($admin->totp_secret_enc))
※ Google OTP 미등록 상태라 선택할 수 없습니다. (등록은 ‘내 정보’에서만 가능)
@endif
여러 개 선택 가능
@foreach($allRoles as $r) @php $rid = (int)$r['id']; @endphp @endforeach
{{-- ===== 하단 액션바(폼 밖) ===== --}}
뒤로가기
@if($lockLabel)
@csrf
@endif
@csrf
@endsection