Welcome to mail.siecobywatelska.pl’s documentation!

Contents:

Wprowadzenie

Zaistniała konieczność przygotowania nowej wersji aplikacji mail.siecobywatelska.pl, która byłaby otwarta na skuteczny rozwój i rozbudowę. Mogę ją przygotować całkiem sam, a można ją przygotować w zespole z KNI Genbit, a dodatkowo podjąć formalną współpracę zewnętrzną.

Aplikacja ma służyć do zarządzania wiadomościami urlopowymi oprogramowania DirectAdmin. DirectAdmin to najpopularniejszy panel administracyjny dla hostingów do zarządzania domenami, pocztą, kontami FTP, wiadomościami urlopowymi itd. Posiada API.

Niestety, nawet wiadomości o urlopie (automatyczne odpowiedź w e-mailu) są możliwe do wprowadzenia tylko przez administratora. Powinny być jednak możliwe do wykonania przez użytkownika samemu sobie.

Z założenia stworzone oprogramowanie ma mieć charakter open-source i być dostępne dla każdego zainteresowanego bez dodatkowych opłat.

Funkcje:

  • logowanie wykorzystujące uwierzytelnianie [1] w oparciu o zewnętrzny serwer SMTP,

  • wyświetlenie listy istniejących skrzynek pocztowych (dla administratora),

  • zarządzanie wiadomościami urlopowymi:

    • wyświetlenie listy wiadomości urlopowych danego użytkownika,
    • dodanie wiadomości urlopowej z wykorzystaniem API,
    • usunięcie wiadomości urlopowej z wykorzystaniem API,
  • zarządzanie skrzynkami poczty elektronicznej:

    • utworzenie skrzynki poczty elektronicznej,
    • wyświetlenie listy aliasów istniejących dla danej skrzynki poczty elektronicznej,
    • utworzenie zlecenia archiwizacji skrzynki poczty elektronicznej,
  • edycja statycznej treści strony głównej,

  • edycja odnośników menu nawigacyjnego,

  • zarządzanie serwerami DirectAdmin,

  • przedstawienie instrukcji połączenia z różnymi programami pocztowymi.

[1]

Ponieważ pojęcie “uwierzytelnianie” sprawia kłopoty warto zacytować fragment z Tomasz Mielnicki, Franciszek Wołowski, Marek Grajek, Piotr Popis, Identyfikacja i uwierzytelnianie w usługach elektronicznych, Przewodnik Forum Technologii Bankowych przy Związku Banków Polskich, Warszawa, 2013:

Usługi elektroniczne zakładające interakcję z użytkownikiem wymagają zwykle identyfikacji użytkownika i jego uwierzytelnienia. Zgodnie z terminologią, identyfikację rozumie się jako nadanie (przypisanie) identyfikatora do osoby oraz deklarację (stwierdzenie) tożsamości osoby poprzez przedstawienie indentyfikatora. Taki identyfikator jednoznacznie tą osobę identyfikuje i stanowi elektroniczną tożsamość użytkownika w tymże środowisku. Sama identyfikacja pozwala zatem na stwierdzenie „o kogo chodzi”, ale nie potwierdza, że użytkownik danej e-usługi jest faktycznie tą osobą, która została zadeklarowana i zidentyfikowana. Do tego potwierdzenia służy właśnie uwierzytelnienie, polegające na dostarczeniu dowodów, że użytkownik jest właśnie tą zidentyfikowaną osobą (nikt się nie podszywa). W szczególnych przypadkach identyfikacja i uwierzytelnienie może przebiegać jednocześnie (np. gdy nasz identyfikator jest tajny, stanowiąc jednocześnie „hasło”), ale zasadniczo są to dwa różne procesy. Z kolei pod pojęciem autoryzacji (często mylonej z uwierzytelnieniem i niepoprawnie nazywanej „autentykacją”) rozumie się proces nadania określonych uprawnień, z których następnie poprawnie zidentyfikowana i uwierzytelniona osoba będzie mogła korzystać.

Technologia

Aplikacja ma wykorzystywać Django (Python) bazując na API DirectAdmina i uwierzytelnianiu SMTP (de facto drugie API tylko do uwierzytelniania).

Będzie nacisk na to, aby aplikacja posiadała pewne pokrycie testami automatycznymi, aby zagwarantować jej w przyszłości stabilny rozwój.

Aplikacja ma być oparta na zewnętrznym API, więc nie ma znaczenia w jakim języku został napisany DirectAdmin. Ważne, aby używać wspólnego języka komunikacji (protokołu API). To

Wybór Pythona podyktowany jest kwestia gustu opiekuna projektu i - jeżeli kilka technologii identycznie spełnia wymagania - trzeba o tym wcześnie zdecydować w oparciu o skład zespołu.

Opiekun projektu Django znam, wiem jakie biblioteki istnieją, które możemy wykorzystać. Podobnie zna Pythona, który jest dla niego preferowanym językiem programowania. Dlatego jak mam swobodny wybór technologii to wybiera właśnie to. Musi być osoba, która projekt będzie utrzymyać po ukończeniu podstawowych funkcjonalności [1] , zatem warto zadbać o komfort programisty podczas tego procesu uwzględniając istniejące zasoby Stowarzyszenia Sieć Obywatelska - Watchdog Polska.

[1]zob. Adam Wiggins, The New Heroku (Part 4 of 4): Erosion-resistance & Explicit Contracts, 28 June 2011

DirectAdmin

Do zarządzania wiadomościami urlopowymi i skrzynkami poczty elektronicznej wykorzystywany jest DirectAdmin, czyli panel administracyjny dla serwera hostingowego, który zapewnia np. przystępne konfigurowanie domen, podstawową edycje plików użytkownika, zarządzanie kontami pocztowymi itd.

W architekturze aplikacji można, ale nie jest konieczne, aby uwzględniać możliwość wykorzystania innych paneli hostingowych.

Dla celów testowych możliwe jest wykorzystanie konta użytkownika instancji testowej .

Warto wskazać, że dla DirectAdmina istnieją odpowiednie biblioteki pythonowe np:

Indices and tables