labwithcommunity / Lab-With-Comunity_Official-Api

MIT License
1 stars 0 forks source link

Rejestracja konta użytkownika #28

Closed michupl22 closed 1 week ago

michupl22 commented 2 weeks ago

Funkcjonalność pozwala na założenie konta w systemie, które uprawnia do korzystania z jego usług, czyli

Procedura rejestracji użytkownika

  1. Użytkownik podaje swój adres email.
  2. Użytkownik podaje swoją nazwę użytkownika.
  3. Użytkownik podaje swoje hasło i potwierdza je w drugim formularzu.
  4. Następnie klika na przycisk tworzący konto.

    Wymagania

    Wypełnianie formularza

    • [x] Domyślnie nazwa użytkownika to nazwa konta email.
    • [x] Domyślnie nick/pseudonim przyjmuje nazwę użytkownika jakie podaje użytkownik.
    • [x] Jeśli nazwa użytkownika istnieje w systemie to zwracany jest stosowny komunikat. System nie dopuszcza duplikatów.
    • [x] Jeśli adres email istnieje w systemie to jest zwracany komunikat. System nie dopuszcza duplikatów.
    • [x] Jeżeli pseudonim podczas tworzenia konta już istnieje to dodawany jest losowy numer np. pseudonim5423.
    • [x] Hasło musi posiadać minimum 6 znaków.
    • [x] Hasło musi posiadać minimum jedną mała i jedną wielką literę i cyfrę.
    • [x] Hasło musi posiadać przynajmniej jeden znak specjalny.

      Przetwarzanie formularza

    • [x] Nowo utworzone konto jest domyślnie ma domyślną flagę admin ustawioną na false.
    • [x] Nowo utworzone konto nie jest domyślnie zatwierdzone. Posiada flagę approved ustawioną na false.
    • [x] Tworzony jest wpis w tabeli confirmations, w którym zamieszczamy datę utworzenia i czas do zatwierdzenia adresu email. Domyślnie jest to 8 godzin.
    • [x] Do zatwierdzenia konta wysyłany jest unikalny link w formacie:
      http://www.labwithcommunity.org/email/approve&token=XXX
    • [x] Po kliknięciu w link flaga approved ustawiana jest na true.
    • [x] Właściwość lastlogin nie jest ustawiana przy tworzeniu konta. Dopiero po pierwszym zalogowaniu.
    • [x] Flaga active jest ustawiana na true przy tworzeniu konta. Chyba, że minie czas do jego zatwierdzenia. Wtedy flaga active i approved jest ustawiana na false.
lukaszkosminski commented 1 week ago

uzupełniony application.properties

spring.application.name=labwithcommunity spring.messages.basename=validationMessages server.port=8880

MYSQL CONFIG

spring.datasource.url=jdbc:mysql://localhost:3308/dev spring.datasource.username=admin spring.datasource.password=admin spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

HIBERNATE CONFIG

spring.jpa.hibernate.ddl-auto=update spring.jpa.show-sql=true spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect

EMAIL CONFIG

spring.mail.host=127.0.01 spring.mail.port=8025 spring.mail.username=myuser spring.mail.password=mysecretpassword spring.mail.properties.mail.smtp.auth=false spring.mail.properties.mail.smtp.starttls.enable=false email.sender=no-reply@labwithcommunity.org approve.user.url=http://localhost:8880/api/v1/public/email/approve?token=

lukaszkosminski commented 1 week ago

do wykonania zadania postawiłem lokalnie fake smt server https://github.com/gessnerfl/fake-smtp-server użyłem starszej wersji 2.0.0