@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 hasla uzytkownik musi podac drugi skladnik, najczesciej kod z aplikacji TOTP.

Dzieki temu przejecie samego hasla nie wystarcza do uzyskania dostepu do konta.

Tryby polityki 2FA:

  • disabled - 2FA jest globalnie wylaczone.
  • optional - uzytkownik sam decyduje o wlaczeniu 2FA.
  • required - kazdy uzytkownik musi skonfigurowac 2FA.
Ustawienia 2FA
@csrf
Zmiana polityki wplywa na caly 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 bedzie mogl okreslic sposob wysylki, nadawce i parametry bezpieczenstwa kodow.

Obecnie widoczne opcje sa zablokowane, aby zachowac spojny interfejs i gotowosc do rozbudowy.

Ustawienia bramki SMS
Domyslna metoda 2FA:
Obsluga SMS:
Konfiguracja bramki SMSAPI:
Opis ustawien sesji

Sesja APP pozwala sterowac bezpieczenstwem logowania globalnie dla wszystkich uzytkownikow.

  • Tylko jedna aktywna sesja - nowe logowanie zastapi poprzednie (inna przegladarka/komputer).
  • Zakoncz po zamknieciu przegladarki - sesja nie bedzie utrzymywana po zamknieciu okna.
  • Limit bezczynnosci - automatyczne wygaszenie sesji po okresie braku aktywnosci.

Logi ponizej pokazuja kto, kiedy i z jakiego IP logowal sie oraz kiedy poprzednia sesja zostala zastapiona.

Ustawienia sesji aplikacji
@csrf
ON OFF
ON OFF
ON OFF
ON OFF
Historia Logowań
Wyczysc
@forelse($sessionLogs as $log) @empty @endforelse
ID Data Uzytkownik IP Przegladarka 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, wartosc 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 rekordow nie sa 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 udalo sie porownac baz danych.
{{ $dbCompareResult['message'] ?? 'Nieznany blad polaczenia 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'] }} Roznice 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 sa 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
Roznice 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