Struktura katalogów FTP i logika dostępu (wielofirmowość)

Struktura katalogów FTP i logika dostępu (wielofirmowość)

Ten artykuł tłumaczy jak działa wielofirmowość w AkceptujFaktury.pl: czym jest organizacja, jak katalogi NIP tworzą firmy, oraz dlaczego najważniejszą „dźwignią” dostępu jest katalog startowy FTP. Są tu konkretne przykłady i gotowe schematy.

Najważniejsza zasada: użytkownik widzi tylko to, do czego ma dostęp na serwerze. W praktyce dostęp ustawia się przez katalog startowy (home directory) konta FTP/FTPS/SFTP.

Definicje: co oznacza „wielofirmowość”

Pojęcie Co to znaczy w praktyce Jak to wygląda w katalogach
Katalog główny „Kontener” na organizacje. Najczęściej to katalog techniczny, np. biura rachunkowego. /BIURO_RACHUNKOWE/
Organizacja Główny obszar pracy użytkownika. W organizacji może być jedna lub wiele firm. /BIURO_RACHUNKOWE/COMSNER/
Firma Konkretna firma w organizacji, identyfikowana przez NIP. /BIURO_RACHUNKOWE/COMSNER/1234567890/
✅ Organizacja = „konto pracy” ✅ Firma = katalog NIP ⚠ Dostęp = katalog startowy FTP

Logika wielofirmowości – w 60 sekund

Krok 1
Użytkownik loguje się
Aplikacja łączy się z serwerem (FTP/FTPS/SFTP) na danych użytkownika.
Krok 2
Start w katalogu użytkownika
Serwer FTP „wpuszcza” użytkownika do jego katalogu startowego (home directory).
Krok 3
Wykrywanie firm (NIP)
Aplikacja skanuje katalogi NIP i buduje listę firm dostępnych dla użytkownika.

Wniosek: jeśli katalog startowy ustawisz na organizację, użytkownik widzi wiele firm. Jeśli ustawisz katalog startowy na konkretny NIP, użytkownik widzi jedną firmę.

Struktura katalogów (przykład biura rachunkowego)

Poniżej jest uproszczony przykład: katalog /BIURO_RACHUNKOWE/ zawiera kilka organizacji. W organizacji (np. COMSNER) znajduje się wiele firm (katalogi NIP).

/BIURO_RACHUNKOWE/
├── COMSNER/
│   ├── 1234567890/
│   │   ├── firma.json
│   │   ├── Zakup/
│   │   ├── Sprzedaz/
│   │   └── Archiwum/
│   └── 2223334445/
│       ├── firma.json
│       ├── Zakup/
│       ├── Sprzedaz/
│       └── Archiwum/
└── INTUITI/
    ├── 7781128507/
    │   ├── firma.json
    │   ├── Zakup/
    │   ├── Sprzedaz/
    │   └── Archiwum/
    └── 9910020030/
        ├── firma.json
        ├── Zakup/
        ├── Sprzedaz/
        └── Archiwum/
📁 Organizacja = nazwa katalogu (np. COMSNER) 🏢 Firma = katalog NIP 🔒 Nie widzisz INTUITI, jeśli startujesz w COMSNER

Przykłady dostępu: kto co widzi

Poniższe trzy przypadki pokrywają 99% wdrożeń. W każdym z nich zmienia się tylko jedna rzecz: katalog startowy konta na serwerze.

Administrator
admin@twojadomena.pl
Widzi wszystkie organizacje i wszystkie firmy.
Katalog startowy:
/BIURO_RACHUNKOWE/
Użytkownik organizacji
user@twojadomena.pl
Widzi jedną organizację (np. COMSNER)
i wiele firm (NIP) w tej organizacji.
Katalog startowy:
/BIURO_RACHUNKOWE/COMSNER/
Użytkownik jednej firmy
kierownik@twojadomena.pl
Widzi tylko jedną firmę (jeden NIP) w organizacji.
Katalog startowy:
/BIURO_RACHUNKOWE/COMSNER/1234567890/

Jeśli chcesz ograniczyć dostęp „kierownikowi” do jednej firmy, nie musisz nic zmieniać w aplikacji — wystarczy ustawić mu katalog startowy na konkretny katalog NIP.

Co się dzieje przy dodaniu nowej firmy

Gdy użytkownik w organizacji tworzy nową firmę, system robi to w sposób przewidywalny: tworzy nowy katalog NIP w tej samej organizacji i zakłada podstawowe podkatalogi.

/BIURO_RACHUNKOWE/COMSNER/
└── 5556667778/               ← nowa firma (NIP)
    ├── firma.json
    ├── Zakup/
    ├── Sprzedaz/
    └── Archiwum/
✅ Nowa firma = nowy katalog NIP ✅ Struktura Zakup/Sprzedaz/Archiwum tworzona automatycznie ⚠ Użytkownik zobaczy firmę tylko jeśli ma dostęp do jej katalogu

Checklista konfiguracji serwera (dla admina)

1) Struktura katalogów

  • Ustal katalog główny (np. /BIURO_RACHUNKOWE/).
  • Dla każdej organizacji utwórz osobny katalog (np. COMSNER).
  • W organizacji trzymaj firmy jako katalogi NIP.

2) Konta użytkowników

  • Admin: katalog startowy = katalog główny.
  • Użytkownik organizacji: katalog startowy = katalog organizacji.
  • Użytkownik jednej firmy: katalog startowy = katalog NIP.

3) Uprawnienia zapisu

  • Wymagany zapis w: Zakup/, Sprzedaz/, Archiwum/.
  • JSON statusów/notatek/historii musi się zapisywać obok XML.
  • Brak zapisu = statusy i notatki „nie będą się trzymały”.

4) Bezpieczeństwo

  • Preferuj FTPS albo SFTP.
  • FTP traktuj jako awaryjne (nieszyfrowane).
  • Silne hasła + ograniczenie IP (jeśli możliwe).

Typowe błędy i jak je rozpoznać

Objaw Najczęstsza przyczyna Co zrobić
Nie widać żadnych firm Katalog startowy ustawiony zbyt wysoko albo zbyt nisko / brak katalogów NIP Ustaw start na organizację albo na NIP, upewnij się że katalogi NIP istnieją
Widać za dużo (np. inne organizacje) Użytkownik startuje w katalogu głównym Ustaw start na /BIURO_RACHUNKOWE/COMSNER/ (organizacja)
Statusy/notatki nie zapisują się Brak uprawnień zapisu w katalogach firmy Nadaj zapis dla Zakup/, Sprzedaz/, Archiwum/
Użytkownik miał mieć 1 firmę, a widzi 2 Start ustawiony na organizację zamiast na NIP Ustaw start na /.../COMSNER/1234567890/
✅ Naprawa zwykle = popraw katalog startowy ⚠ Drugie miejsce = uprawnienia zapisu

FAQ

Czy „organizacja” to firma?
Nie. Organizacja to „obszar użytkownika”, w którym może być jedna lub wiele firm (NIP).

Czy mogę mieć jednego użytkownika do kilku firm?
Tak. Ustaw katalog startowy na organizację (np. /BIURO_RACHUNKOWE/COMSNER/).

Jak ograniczyć dostęp do jednej firmy?
Ustaw katalog startowy na konkretny NIP (np. /BIURO_RACHUNKOWE/COMSNER/1234567890/).

Co jest minimum, aby system działał poprawnie?
Katalog firmy musi zawierać: firma.json oraz podkatalogi Zakup, Sprzedaz, Archiwum. Użytkownik musi mieć prawo zapisu w tych katalogach.

Jeśli chcesz, aby ten artykuł był podlinkowany z instrukcji v1.077 (jako „czytaj więcej”), dodaj link w sekcji wielofirmowości.