@extends('layouts.site') @section('title', 'Panel Administratora - Ustawienia aplikacji') @section('menu') @include('sites.admin.menu_admin') @endsection @section('content')
@if($errors->any())
    @foreach($errors->all() as $error)
  • {{ $error }}
  • @endforeach
@endif
Opis 2FA

2FA (Two-Factor Authentication) to dodatkowa warstwa zabezpieczenia logowania.

Po wpisaniu hasła użytkownik musi podac drugi skladnik, najczesciej kod z aplikacji TOTP.

Dzieki temu przejecie samego hasła nie wystarcza do uzyskania dostępu do konta.

Tryby polityki 2FA:

  • disabled - 2FA jest globalnie wylaczone.
  • optional - użytkownik sam decyduje o wlaczeniu 2FA.
  • required - kazdy użytkownik musi skonfigurowac 2FA.
Ustawienia 2FA
@csrf
Zmiana polityki wplywa na cały system.
Opis bramki SMS

Bramka SMS pozwoli w przyszlosci wysylac jednorazowe kody logowania na telefon.

Docelowa integracja zostanie oparta o SMSAPI, ale na tym etapie funkcja jest przygotowana tylko architektonicznie.

Po wdrozeniu SMS administrator będzie mogl okreslic sposob wysylki, nadawce i parametry bezpieczenstwa kodow.

Obecnie widoczne opcje są zablokowane, aby zachowac spojny interfejs i gotowość do rozbudowy.

Ustawienia bramki SMS
Domyslna metoda 2FA:
Obsługa SMS:
Konfiguracja bramki SMSAPI:
Opis ustawien sesji

Sesja APP pozwala sterowac bezpieczenstwem logowania globalnie dla wszystkich użytkowników.

  • Tylko jedna aktywna sesja - nowe logowanie zastapi poprzednie (inna przeglądarka/komputer).
  • Zakończ po zamknięciu przeglądarki - sesja nie będzie utrzymywana po zamknięciu okna.
  • Limit bezczynności - automatyczne wygaszenie sesji po okresie braku aktywnosci.

Logi ponizej pokazuja kto, kiedy i z jakiego IP logowal się oraz kiedy poprzednia sesja została zastapiona.

Ustawienia sesji aplikacji
@csrf
ON OFF
ON OFF
ON OFF
ON OFF
Historia Logowań
Wyczysc
@forelse($sessionLogs as $log) @empty @endforelse
ID Data Użytkownik IP Przeglądarka Typ Opis
{{ $log->id }} {{ optional($log->created_at)->format('Y-m-d H:i:s') }}
{{ $log->user_name ?: '-' }}
{{ $log->user_email ?: '-' }}
{{ $log->ip_address ?: '-' }} {{ $log->browser_name ?: '-' }} {{ $log->event_type ?: '-' }} {{ $log->event_note ?: '-' }}
Brak danych logow.
Opis porownania DB

Porownanie baz danych sprawdza schemat aktualnej bazy aplikacji wzgledem bazy porownawczej.

Analiza obejmuje tabele oraz definicje kolumn: typ, NULL, wartość domyslna, klucz, dodatkowe atrybuty, charset i collation.

  • Brakujace - element jest w bazie porownawczej, ale nie ma go w aktualnej bazie.
  • Nadmiarowe - element jest w aktualnej bazie, ale nie ma go w bazie porownawczej.
  • Zmienione - kolumna istnieje w obu bazach, ale ma inna definicje.

Porownanie czyta tylko metadane z information_schema. Dane rekordów nie są pobierane ani modyfikowane.

Uruchom porownanie
Baza aktualna: {{ $dbCompareSource }} / {{ config('database.connections.'.$dbCompareSource.'.database') }}
Baza porownawcza: {{ $dbCompareTarget }} / {{ config('database.connections.'.$dbCompareTarget.'.database') }}
@if(!empty($dbCompareResult))
@if(empty($dbCompareResult['ok']))
Nie udało się porownac baz danych.
{{ $dbCompareResult['message'] ?? 'Nieznany błąd połączenia lub odczytu schematu.' }}
@else
Wynik porownania z {{ $dbCompareResult['started_at'] }}
{{ (int) $dbCompareResult['source_table_count'] }} Tabele w aktualnej DB
{{ (int) $dbCompareResult['target_table_count'] }} Tabele w bazie porownawczej
{{ (int) $dbCompareResult['summary']['missing_tables'] + (int) $dbCompareResult['summary']['extra_tables'] }} Różnice tabel
{{ (int) $dbCompareResult['summary']['tables_with_column_diffs'] }} Tabele z roznicami kolumn
@if(empty($dbCompareResult['missing_tables']) && empty($dbCompareResult['extra_tables']) && empty($dbCompareResult['column_diffs']))
Schematy baz są zgodne w zakresie tabel i kolumn.
@else
Brakujace tabele w aktualnej DB
@if(empty($dbCompareResult['missing_tables'])) Brak. @else
    @foreach($dbCompareResult['missing_tables'] as $tableName)
  • {{ $tableName }}
  • @endforeach
@endif
Nadmiarowe tabele w aktualnej DB
@if(empty($dbCompareResult['extra_tables'])) Brak. @else
    @foreach($dbCompareResult['extra_tables'] as $tableName)
  • {{ $tableName }}
  • @endforeach
@endif
Różnice kolumn
@forelse($dbCompareResult['column_diffs'] as $tableDiff) @empty @endforelse
Tabela Brakujace kolumny Nadmiarowe kolumny Zmienione kolumny
{{ $tableDiff['table'] }} @forelse($tableDiff['missing_columns'] as $columnName)
{{ $columnName }}
@empty Brak. @endforelse
@forelse($tableDiff['extra_columns'] as $columnName)
{{ $columnName }}
@empty Brak. @endforelse
@forelse($tableDiff['changed_columns'] as $columnDiff)
{{ $columnDiff['name'] }}
Aktualna: {{ $columnDiff['source'] }}
Porownawcza: {{ $columnDiff['target'] }}
@empty Brak. @endforelse
Brak roznic kolumn.
@endif
@endif
@endif
@endsection @section('navbar') @include('sites.admin._navbar_m_admin_site') Ustawienia aplikacji @endsection