From 6ac3a34127d0158b93ffd4edc7175886da2d700d Mon Sep 17 00:00:00 2001 From: Kristofers Solo Date: Mon, 30 Oct 2023 22:30:56 +0200 Subject: [PATCH] refactor: auth module --- .../IO-functions/IIDP09.tex | 16 +++ .../IO-functions/index.tex | 2 + .../function-modules.tex | 4 +- .../modules/auth/AMF01.tex | 136 +++++++++++------- .../modules/auth/AMF02.tex | 43 +++--- .../modules/auth/AMF03.tex | 68 +++++---- .../modules/auth/AMF04.tex | 56 ++++++++ .../modules/auth/AMF05.tex | 53 ++++--- .../modules/auth/AMF06.tex | 20 +-- .../modules/auth/AMF07.tex | 36 ++--- .../functional-requirements/modules/index.tex | 2 + 11 files changed, 280 insertions(+), 156 deletions(-) create mode 100644 src/requirements/functional-requirements/IO-functions/IIDP09.tex diff --git a/src/requirements/functional-requirements/IO-functions/IIDP09.tex b/src/requirements/functional-requirements/IO-functions/IIDP09.tex new file mode 100644 index 0000000..7a3c71a --- /dev/null +++ b/src/requirements/functional-requirements/IO-functions/IIDP09.tex @@ -0,0 +1,16 @@ +\parameterTable{}{IIDP09} % TODO: add title +{Biogrāfiskā informācija} +{IIDP09} +{ + Reģistrēta lietotāja pievienotā profila informācija teksta formātā. +} +{ + \begin{enumerate} + \item Simbolu virkne garumā līdz 512 simboliem; + \item Atļautie simboli: Unikoda lielie burti (Lu), mazie burti (Ll), virsraksta burti (Lt,) modifikatoru burti (Lm), citi burti (Lo), speciālie simboli. + \end{enumerate} +} +{ + Dzimis ēteriskā meža sirdī, vienmēr biju noskaņots uz vējiem. + Jau no mazotnes parādīju iedzimtu spēju sazināties ar vēsmām un brāzmām, kas plūda cauri senajiem kokiem. +} diff --git a/src/requirements/functional-requirements/IO-functions/index.tex b/src/requirements/functional-requirements/IO-functions/index.tex index 2a32af3..6b778a6 100644 --- a/src/requirements/functional-requirements/IO-functions/index.tex +++ b/src/requirements/functional-requirements/IO-functions/index.tex @@ -1,5 +1,7 @@ \subsubsection{Kopīgās funkcijas ievades / izvades datu prasības} Apakšnodaļa ietver informāciju par funkciju parametriem, tai skaitā, nosaukumu, identifikatoru, aprakstu, prasībām un parametru vērtību piemēru, ja tas ir nepieciešams. +\setlength{\parindent}{0pt} \input{./src/requirements/functional-requirements/IO-functions/parameter/index.tex} \input{./src/requirements/functional-requirements/IO-functions/procedure/index.tex} +\setlength{\parindent}{1cm} diff --git a/src/requirements/functional-requirements/function-modules.tex b/src/requirements/functional-requirements/function-modules.tex index 6a31c4a..c1cd104 100644 --- a/src/requirements/functional-requirements/function-modules.tex +++ b/src/requirements/functional-requirements/function-modules.tex @@ -48,8 +48,8 @@ Pārskatamības dēļ DPD tika sadalīta divās daļās (skat \ref{fig:dpd-1.1} \setcounter{rownum}{0} \multirow{1}{2.1cm}{Reģistrācijas un pieteikšanās modulis} & Lietotāja reģistrācija & \hyperref[tab:mod-func-auth-reg]{\stepcounter{rownum}AMF\therownum} & Nereģistrēts lietotājs \\ \cline{2-4} & Apstiprinājuma ziņas atkārtotās izsūtīšanas pieteikums & \hyperref[tab:mod-func-auth-app]{\stepcounter{rownum}AMF\therownum} & Nereģistrēts lietotājs, Reģistrēts lietotājs \\ \cline{2-4} - & Paroles atjaunošanas pieteikums & \hyperref[tab:mod-func-auth-pass-restore]{\stepcounter{rownum}AMF\therownum} & Reģistrēts lietotājs \\ \cline{2-4} - & Paroles atjaunošana & \hyperref[tab:]{\stepcounter{rownum}AMF\therownum} & Reģistrēts lietotājs \\ \cline{2-4} + & Paroles atjaunošanas pieteikums & \hyperref[tab:mod-func-auth-pass-restore-app]{\stepcounter{rownum}AMF\therownum} & Reģistrēts lietotājs \\ \cline{2-4} + & Paroles atjaunošana & \hyperref[tab:mod-func-auth-pass-restore]{\stepcounter{rownum}AMF\therownum} & Reģistrēts lietotājs \\ \cline{2-4} & Lietotāja pieteikšanās & \hyperref[tab:mod-func-auth-login]{\stepcounter{rownum}AMF\therownum} & Reģistrēts lietotājs \\ \cline{2-4} & Lietotāja atteikšanās & \hyperref[tab:mod-func-auth-logout]{\stepcounter{rownum}AMF\therownum} & Reģistrēts lietotājs \\ \cline{2-4} & Lietotāja konta apstiprināšana & \hyperref[tab:mod-func-auth-email-confirm]{\stepcounter{rownum}AMF\therownum} & Reģistrēts lietotājs \\ \hline diff --git a/src/requirements/functional-requirements/modules/auth/AMF01.tex b/src/requirements/functional-requirements/modules/auth/AMF01.tex index d90dc67..0ea43f5 100644 --- a/src/requirements/functional-requirements/modules/auth/AMF01.tex +++ b/src/requirements/functional-requirements/modules/auth/AMF01.tex @@ -4,83 +4,113 @@ {Lietotāja reģistrācija} {AMF01} { - Funkcijas mērķis ir izveidot lietotāja kontu tā identifikācijai, turpmākās autentifikācijas un lietotāja darbību autentifikācijai un sistēmas lietotāja informācijas uzglabāšanai. - Apstrādes procesā ievades dati tiek pārbaudīti attiecīgi noteiktajām prasībām, lai tie būtu jēdzīgi sistēmas kontekstā un atbilstu datubāzes uzglabātajiem formātiem. - Paroles šifrēšanas procesā tiek izmantota jaucējfunkcija ar papildus drošības līdzekli - ``sāls pievienošanu'' - nejaušu simbolu virknes pievienošanu pirms šifrēšanas. + Funkcijas mērķis ir reģistrēt lietotāja kontu sistēmā, autentifikācijas + procesam un lietotāja darbību autorizācijai, un lietotāja informācijas + uzglabāšanai. Apstrādes procesā ievades dati tiek pārbaudīti attiecīgi + noteiktajām prasībām. Paroles šifrēšanas procesā tiek izmantota + jaucējfunkcija ar papildus drošības metodiku - ``sāls pievienošanu'' - + nejaušu simbolu virknes pievienošanu pirms šifrēšanas procesa uzsākšanas. } { Ievades dati tiek saņemti no nereģistrētiem lietotājiem pieejamās veidlapas. \\ Obligātie parametri: \begin{enumerate} - \item Pilns vārds - simbolu virkne ar garumu līdz 50 simboliem, kas var saturēt burtciparu simbolus, defises un atstarpes. - \item Segvārds - simbolu virkne ar garumu no 6 līdz 20 simboliem, kas var saturēt burtciparu simbolus, skaitļus, defises, pasvītras, apostrofus. - \item E-pasta adrese - simbolu virkne ar garumu līdz 320 simboliem. Pieļautajiem simboliem un pieļaujamam formātam jāatbilst ``RFC 2822: Interneta ziņu formāts'' standarta prasībām. - \item Dzimšanas datums - datums formatēts kā simbolu virkne. - \item Parole - simbolu virkne ar garumu no 8 līdz 128 simboliem, kas var saturēt burtciparu simbolus, skaitļus, atstarpi, speciālos simbolus: - izsaukuma zīmi, dubultpēdiņas, skaitļa zīmi, dolāra zīmi, procenta zīmi, ampersandu, pēdiņas, iekavas, figūriekavas, - zvaigznīti, plusu, komatu, mīnusu, punktu, slīpsvītru, kolu, semikolu, salīdzinājuma zīmes, vienādības zīmi, - jautājuma zīmi, ``et'' zīmi, slīpsvītru, pasvītru, vertikālo joslu, tildi. - Minimālās drošības prasības: parole satur vismaz vienu lielo un mazo burtu, vienu ciparu. + \item Vārds, uzvārds; + \item Segvārds; + \item E-pasta adrese; + \item Parole; \item Paroles apstiprinājums - simbolu virkne. kas atbilst iepriekš minētās paroles prasībām. \end{enumerate} Neobligātie parametri: \begin{enumerate} - \item Profila attēls - attēla datne, kura paplašinājums ir viens no: JPEG, JPG, GIF, PNG, WEBP un izmērs nepārsniedz 1MB. - \item Biogrāfiskā informācija - simbolu virkne garumā līdz 300 simboliem. + \item Profila attēls; + \item Biogrāfiskā informācija. \end{enumerate} } { \begin{enumerate} - \item Pārbauda, vai visi obligātie lauki ir iesniegti. - Ja tie nav, iegūst sarakstu ar neazpildītajiem laukiem, parāda 1. paziņojumu. - \item Pārbauda, vai parole un paroles apstiprinājums sakrīt. - Ja nesakrīt, tad parāda 2. paziņojumu. - \item Pārbauda, vai pilns vārds, segvārds, e-pasta adrese, parole satur tikai pieļaujamos simbolus. - Ja nesatur, tad iegūst izmantotos neatļautos simbolus, tad parāda 3. paziņojumu ar attiecīgi laukiem un simboliem. - \item Pārbauda, vai pilns vārds, segvārds, e-pasta adrese, biografiskā informācija, parole nepārsniedz noteikto garumu. - Ja pārsniedz, tad iegūst pārsniegto garumu parametru sarakstu un parāda 4. paziņojumu ar attiecīgajiem laukiem un garumiem. - \item Pārbauda, vai parole atbilst noteiktiem drošības prasībām. - Ja tā tiem neatbilst, ta parāda 5. paziņojumu ar attiecīgām neizpildītajām prasībām. - \item Pārbauda, vai dzimšanas datums atbilst minimālam vecumam reģistrācijai. - Ja neatbilst, parāda 6. paziņojumu. - \item Ja tika iesniegta biogrāfiskā informācija, aizvieto salīdzinājuma zīmes, ampersantu, dubultpēdiņas un pēdiņas ar ekvivalentu. - \item Ja tika iesniegts attēls, tad pārbauda, vai datne atbilst atļautajiem datnes paplašinājumiem. - Ja neatbilst, parāda 7. paziņojumu ar atļautiem datnes paplašinājumiem. - \item Ja tika iesniegts attēls, tad pārbauda, vai datne nepārsniedz noteikto datnes lielumu. - Ja pārsniedz, parāda 8. paziņojumu ar iesniegtās datnes lielumu un maksimāli atļauto datnes lielumu. - Ja iesniegtā attēla paplašinājums nav PNG, tad datne tiek kovertēta šajā paplašinājumā. - \item Mēģina sameklēt datubāzē lietotājus ar ievadīto e-pastu vai segvārdu. - Ja tāds (/-i) pastāv, tad parāda 9. paziņojumu ar attiecīgo aizņemto lauku. - \item Pievieno parolei nejauši noģenerēto simbolu virki, šifrē paroli ar jaucējfunkciju. - \item Jauna lietotāja sagatavotie dati tiek ierakstīti datubāzē. - Ja ierakstīšana nenotiek, parādīt 10. paziņojumu. - \item Ģenerē e-pasta apstiprinājuma marķieri. - Izveido saiti apstiprinājumam, iekļaujot e-pasta apstiprinājuma marķieri. - \item Sagatavo e-pasta ziņas saturu no šablona, ievietojot tajā apstiprinājuma saiti. + \item Pārbauda, vai visi obligātie lauki ir iesniegti; + \begin{enumerate} + \item Ja tie nav, iegūst sarakstu ar neaizpildītajiem laukiem, parāda + 1. paziņojumu. Beidz apstrādi. + \end{enumerate} + \item Pārbauda, vai parole un paroles apstiprinājums sakrīt; + \begin{enumerate} + \item Ja nesakrīt, tad parāda 2. paziņojumu. Beidz apstrādi. + \end{enumerate} + \item Pārbauda, vai pilns vārds, segvārds, e-pasta adrese, parole satur tikai pieļaujamos simbolus; + \begin{enumerate} + \item Ja nesatur, tad iegūst izmantotos neatļautos simbolus, tad parāda + 3. paziņojumu ar attiecīgi laukiem un simboliem. Beidz apstrādi. + \end{enumerate} + \item Pārbauda, vai pilns vārds, segvārds, e-pasta adrese, biogrāfiskā informācija, parole nepārsniedz noteikto garumu; + \begin{enumerate} + \item Ja pārsniedz, tad iegūst pārsniegto garumu parametru sarakstu un + parāda 4. paziņojumu ar attiecīgajiem laukiem un garumiem. Beidz + apstrādi. + \end{enumerate} + \item Pārbauda, vai parole atbilst noteiktiem drošības prasībām; + \begin{enumerate} + \item Ja tā tiem neatbilst, tad parāda 5. paziņojumu ar attiecīgām + neizpildītajām prasībām. Beidz apstrādi. + \end{enumerate} + \item Pārbauda, vai dzimšanas datums atbilst minimālam vecumam reģistrācijai; + \begin{enumerate} + \item Ja neatbilst, parāda 6. paziņojumu. Beidz apstrādi. + \item Ja tika iesniegta biogrāfiskā informācija, tiek pielietota sanitizācija. + \item Ja tika iesniegts attēls, tad pārbauda, vai datne atbilst pieļaujamajiem datnes paplašinājumiem; + \item Ja neatbilst, parāda 7. paziņojumu ar atļautiem datnes paplašinājumiem. Beidz apstrādi. + \item Ja tika iesniegts attēls, tad pārbauda, vai datne nepārsniedz noteikto datnes lielumu; + \item Ja pārsniedz, parāda 8. paziņojumu ar iesniegtās datnes lielumu un maksimāli atļauto datnes lielumu. Beidz apstrādi. + \item Ja iesniegtā attēla paplašinājums nav PNG, tad datne tiek konvertēta šajā paplašinājumā. + \end{enumerate} + \item Meklē datubāzē lietotājus ar ievadīto e-pastu vai segvārdu; + \begin{enumerate} + \item Ja tāds (/-i) pastāv, tad parāda 9. paziņojumu ar attiecīgo + aizņemto lauku. Beidz apstrādi. + \end{enumerate} + \item Pievieno parolei nejauši ģenerēto simbolu virkni, šifrē paroli ar jaucējfunkciju; + \begin{enumerate} + \item Jauna lietotāja sagatavotie dati tiek ierakstīti datubāzē; + \item Ja ierakstīšana nenotiek, parādīt 10. paziņojumu. Beidz apstrādi. + \end{enumerate} + \item Ģenerē e-pasta apstiprinājuma marķieri. Sameklē lietotājus ar šo e-pasta apstiprinājuma marķieri; + \begin{enumerate} + \item Ja lietotājs tika atrasts, atkārto e-pasta apstiprinājuma ģenerēšanu un + lietotāju meklēšanu līdz marķieris ir unikāls. + \end{enumerate} + \item Izveido saiti apstiprinājumam, iekļaujot e-pasta apstiprinājuma marķieri; + \item Sagatavo e-pasta ziņas saturu no šablona, ievietojot tajā apstiprinājuma saiti; \item Pieprasa e-pasta aizsūtīšanu. - Ja tā netiek apstiprināta, parāda 11. paziņojumu. + \begin{enumerate} + \item Ja tā netiek apstiprināta, parāda 10. paziņojumu. Beidz apstrādi. + \end{enumerate} \end{enumerate} } { - Izvades datu mērķis ir noteikt, vai lietotājs tiks pāradresēts un kurā lapā lietotājs tiks pāradresēts. + Izvades datu mērķis ir noteikt, vai lietotājs tiks pāradresēts un uz kuru lapu lietotājs tiks pāradresēts. + Lietotāja saskarnē parādās 11. paziņojums ar instrukciju par e-pasta + apstiprināšanu. \begin{enumerate} \item Reģistrācijas apstiprinājuma stāvoklis - kods ar noteiktu stāvokli. \end{enumerate} } { \begin{enumerate} - \item Lauks: [neaizpildīto lauku saraksts] netika aizpildīts (/-i)! - \item Parole un paroles apstiprinājums nesakrīt! - \item {}[Parametra nosaukums] nedrīkst saturēt: [izmantoto parametra neatļauto simbolu saraksts]! - \item {}[Parametra nosaukums] nedrīkst pārsniegt [noteikto parametra maksimālo simbolu skaits]! - \item Parolei ir jāsatur: [neizpildīto paroles prasību saraksts]! - \item Minimālais vecums reģistrācijai: [noteitks minimālais vecums reģistrācijai]. - \item Attēla datne ir aizliegts paplašinājums! Atļautie datnes paplašinājumi: [atļauto datnes paplašinājumu saraksts]. - \item Attēļa datne pārsniedz maksimāli atļauto lielumu! Maksimāli atļautais lielums: [maksimāli atļautais lielums]. - \item Lietotājs ar tādu [aizņemtā lauka nosaukums] jau eksistē! - \item Notika sistēmas iekšējā kļūda! Mēģiniet vēlreiz vēlāk! - \item Reģistrācija ir veiksmīga! Apstipriniet lietotāja kontu ar saiti, kas tiks aizsūtīta 1-10 minūšu laikā Jūsu norādītā e-pastā. + \item Lauks: [neaizpildīto lauku saraksts] netika aizpildīts (/-i)!; + \item Parole un paroles apstiprinājums nesakrīt!; + \item {}[Parametra nosaukums] nedrīkst saturēt: [izmantoto parametra neatļauto + simbolu saraksts]!; + \item {}[Parametra nosaukums] nedrīkst pārsniegt [noteikto parametra maksimālo + simbolu skaits]!; + \item Parolei ir jāsatur: [neizpildīto paroles prasību saraksts]!; + \item Minimālais vecums reģistrācijai: [noteikts minimālais vecums reģistrācijai]; + \item Attēla datne ir aizliegts paplašinājums! Atļautie datnes paplašinājumi: [atļauto datnes paplašinājumu saraksts]; + \item Attēla datne pārsniedz maksimāli atļauto lielumu! Maksimāli atļautais lielums: [maksimāli atļautais lielums]; + \item Lietotājs ar tādu [aizņemtā lauka nosaukums] jau eksistē!; + \item Sistēmas iekšējā kļūda! Mēģiniet vēlreiz vēlāk!; + \item Reģistrācija ir veiksmīga! Apstipriniet lietotāja kontu ar saiti, kas tiks izsūtīta tuvākā laikā e-pastā. \end{enumerate} } diff --git a/src/requirements/functional-requirements/modules/auth/AMF02.tex b/src/requirements/functional-requirements/modules/auth/AMF02.tex index 59ad6af..07c7daf 100644 --- a/src/requirements/functional-requirements/modules/auth/AMF02.tex +++ b/src/requirements/functional-requirements/modules/auth/AMF02.tex @@ -4,41 +4,48 @@ {Apstiprinājuma ziņas atkārtotās izsūtīšanas pieteikums} {AMF02} { - Funckijas mērķis ir izsūtīt e-pasta apstiprinājumu atkārtoti lietotājam, kas jau veica reģistrāciju + Funkcijas mērķis ir izsūtīt e-pasta apstiprinājumu atkārtoti lietotājam, kas jau veica reģistrāciju vai reģistrācijas laikā, vai pēc e-pasta izmaiņas lietotāja kontā. } { - Ievades dati tiek iegūti no veidlapas datiem, kas tiek aizpildīta automātiski, ja lietotājs veic reģistrācijas procesu. + Ievaddati tiek iegūti no darbības - klikšķis uz attiecīgo apstiprinājuma pieteikuma pogu reģistrācijas laikā vai lietotāja konta rediģēšanas lapā. Obligātie parametri: \begin{enumerate} - \item Lietotāja identifikators - sistēmā izmantots lietotāja identifikators - vesels pozitīvs skaitlis skaitlis, kas atbilst datubāzē glabājamā skaitliska identifikatora diapazonam. + \item Lietotāja identifikators - sistēmā izmantots lietotāja identifikators, kas atbilst IIDP10. \end{enumerate} } { \begin{enumerate} - \item Pārbauda, vai identifikators atbilst paredzētajam datu tipam. - Ja neatbilst parāda 1. paziņojumu. - \item Meklē lietotāju datubāzē pēc ievades datu identifikatora parametra. - Ja tāds lietotājs neeksistē, parāda 1. paziņojumu. - \item Iegūst no datubāzes atrastā lietotāja tā e-pasta adresi. - \item Iegūst atrastā lietotāja tā e-pasta adresi. - \item Ģenerē e-pasta apstiprinājuma marķieri. - Izveido saiti apstiprinājumam, iekļaujot e-pasta apstiprinājuma marķieri. - \item Sagatavo e-pasta ziņas saturu no šablona, ievietojot tajā apstiprinājuma saiti. - \item Pieprasa e-pasta aizsūtīšanu. - Ja tā netiek apstiprināta, parāda 1. paziņojumu. - \item Ja e-pasta ziņas aizsūtīšana ir apstiprināta, parāda 2. paziņojumu. + \item Pārbauda, vai identifikators atbilst paredzētajam datu tipam; + \begin{enumerate} + \item Ja neatbilst parāda 1. paziņojumu. Beidz apstrādi. + \end{enumerate} + \item Meklē lietotāju datubāzē pēc ievades datu identifikatora parametra; + \begin{enumerate} + \item Ja tāds lietotājs neeksistē, parāda 1. paziņojumu. Beidz apstrādi. + \end{enumerate} + \item Iegūst no datubāzes atrastā lietotāja tā e-pasta adresi; + \item Iegūst atrastā lietotāja tā e-pasta adresi; + \item Ģenerē e-pasta apstiprinājuma marķieri. Izveido saiti apstiprinājumam, iekļaujot e-pasta apstiprinājuma marķieri; + \item Sagatavo e-pasta ziņas saturu no šablona, ievietojot tajā apstiprinājuma saiti; + \item Pieprasa e-pasta aizsūtīšanu; + \begin{enumerate} + \item Ja tā netiek apstiprināta, parāda 1. paziņojumu. Beidz apstrādi. + \item Ja e-pasta ziņas aizsūtīšana ir apstiprināta, parāda 2. paziņojumu. Beidz apstrādi. + \end{enumerate} \end{enumerate} } { - Izvades datu mērķis ir noteikt, vai lietotājs tiks pāradresēts un kurā lapā lietotājs tiks pāradresēts. + Izvades datu mērķis ir lietotāja informēšana par apstiprinājuma ziņojuma izsūtīšanas stāvokli. + Lietotāja saskarnē parādās 3. paziņojums ar instrukciju par e-pasta apstiprināšanu. \begin{enumerate} \item E-pasta apstiprinājuma ziņas izsūtīšanas stāvoklis - kods ar noteiktu stāvokli. \end{enumerate} } { \begin{enumerate} - \item Sistēmas iekšējā kļūda! Mēģiniet pārlādēt lapu vai mēģiniet vēlāk! - \item Apstiprinājuma ziņa tiks izsūtīta 1-10 minūšu laikā. + \item Sistēmas iekšējā kļūda! Mēģiniet pārlādēt lapu vai mēģiniet vēlāk!; + \item Apstiprinājuma ziņa tiks izsūtīta 1-10 minūšu laikā; + \item Apstiprinājuma ziņa ir izsūtīta! Apstipriniet lietotāja kontu ar saiti, kas tiks izsūtīta tuvākā laikā e-pastā. \end{enumerate} } diff --git a/src/requirements/functional-requirements/modules/auth/AMF03.tex b/src/requirements/functional-requirements/modules/auth/AMF03.tex index 7b66c23..4735b1b 100644 --- a/src/requirements/functional-requirements/modules/auth/AMF03.tex +++ b/src/requirements/functional-requirements/modules/auth/AMF03.tex @@ -1,49 +1,45 @@ \moduleFunctionTable {Paroles atjaunošanas pieteikums} -{mod-func-auth-pass-restore} +{mod-func-auth-pass-restore-app} {Paroles atjaunošanas pieteikums} {AMF03} { - Funkcijas mērķis ir ļaut lietotājam atjaunot aizmirsto vai kompromitēto paroli, nodrošinot drošu paroles maiņas procesu, kas ietver unikāla marķiera izveidi, tā nosūtīšanu lietotāja e-pastā un tā pārbaudi. + Funkcijas mērķis ir ļaut lietotājam atjaunot aizmirstu vai nedrošu paroli, nodrošinot drošu paroles maiņas procesu, kas ietver unikāla marķiera izveidi, tā nosūtīšanu lietotāja e-pastā un tā verifikāciju. } { - Obligātie parametri: - Ievades dati tiek saņemti no ievades lauciņiem, pieejami autentificētiem un neautentificētiem lietotājiem. - \begin{enumerate} - \item E-pasta adrese - simbolu virkne, kas atbilst ``RFC 2822: Interneta ziņu formāts'' standarta prasībām. - \end{enumerate} -} -{ - \begin{enumerate} - \item Pārbauda, vai e-pasta adrese eksistē datubāzē. - Ja nē, parāda 1. paziņojumu. - \item Ģenerē unikālu marķieri paroles atjaunošanai. - \item Ieraksta jaunu marķieri lietotāja ierakstam, pievienojot tam derīguma laiku. - \item Izveido saiti paroles atjaunošanai, iekļaujot marķieri. - \item Nosūta saiti uz lietotāja e-pasta adresi. - \item Lietotājs atver saiti. - \item Pārbauda, vai saitē iekļautais marķieris ir derīgs un nav novecojis. - Ja nederīgs vai novecojis, parāda 2. paziņojumu. - \item Atver paroles atjaunošanas veidlapu. - \item Lietotājs ievada jauno paroli. - \item Pārbauda, vai jaunā parole atbilst drošības prasībām. - Ja nē, parāda 3. paziņojumu. - \item Paroles šifrēšanas procesā tiek izmantota jaucējfunkcija ar ``sāls pievienošanu.'' - \item Saglabā jauno paroli datubāzē un parāda 4. paziņojumu. - \item Atzīmē veco marķieri kā izmantotu. - \end{enumerate} -} -{ - \begin{enumerate} - \item Paroles atjaunošanas stāvoklis - kods ar noteiktu stāvokli. - \end{enumerate} + Ievaddati tiek iegūti no veidlapas. + Obligātie parametri: + \begin{enumerate} + \item E-pasta adrese - simbolu virkne, kas atbilst “RFC 2822: Interneta ziņu formāts” standarta prasībām. + \end{enumerate} } { \begin{enumerate} - \item E-pasta adrese nav reģistrēta! - \item Saitei ir beidzies derīguma termiņš! - \item Parolei ir jāsatur: [neizpildīto paroles prasību saraksts]! - \item Paroles atjaunošana veiksmīga. + \item Pārbauda, vai e-pasta adrese eksistē datubāzē, meklējot lietotāju ar sakrītošu e-pasta adresi; + \begin{enumerate} + \item Ja tāds lietotājs jau eksistē, parāda 1. paziņojumu. Beidz apstrādi. + \end{enumerate} + \item Ģenerē unikālu marķieri paroles atjaunošanai, pārbaudot unikalitāti, meklējot lietotāju ar sakrītošu un derīgu marķieri; + \begin{enumerate} + \item Ja tāds lietotājs eksistē, atkārto ģenerāciju līdz iegūtais marķieris ir unikāls. + \end{enumerate} + \item Ieraksta jaunu marķieri lietotāja, kas atjauno paroli, ierakstam, pievienojot tam noteikto derīguma laiku; + \item Izveido saiti paroles atjaunošanai, iekļaujot marķieri; + \item Nosūta saiti uz lietotāja e-pasta adresi. + \end{enumerate} +} +{ + Izvades datu mērķis ir lietotāja informēšana par paroles atjaunošanas pieteikuma ziņas izsūtīšanas stāvokli. Lietotāja saskarnē parādās 4. paziņojums. + \begin{enumerate} + Paroles atjaunošanas pieteikuma stāvoklis - kods ar noteiktu stāvokli. + \end{enumerate} +} +{ + \begin{enumerate} + \item E-pasta adrese jau ir reģistrēta!; + \item Saitei ir beidzies derīguma termiņš!; + \item Parolei ir jāsatur: [neizpildīto paroles prasību saraksts]!; + \item Apstiprinājuma ziņa ir izsūtīta! Apstipriniet lietotāja kontu ar saiti, kas tiks izsūtīta tuvākā laikā e-pastā. \end{enumerate} } diff --git a/src/requirements/functional-requirements/modules/auth/AMF04.tex b/src/requirements/functional-requirements/modules/auth/AMF04.tex index e69de29..ecbb642 100644 --- a/src/requirements/functional-requirements/modules/auth/AMF04.tex +++ b/src/requirements/functional-requirements/modules/auth/AMF04.tex @@ -0,0 +1,56 @@ +\moduleFunctionTable +{Paroles atjaunošana} +{mod-func-auth-pass-restore} +{Paroles atjaunošana} +{AMF04} +{ + Funkcijas mērķis ir ļaut lietotājam atjaunot aizmirstu vai nedrošu paroli, nodrošinot drošu paroles maiņas procesu, kas ietver unikāla marķiera izveidi, tā nosūtīšanu lietotāja e-pastā un tā pārbaudi. +} +{ + Ievaddati tiek iegūti no apstiprinājuma vietrādes parametriem ar kuru lietotājs piekļūst sistēmas funkcijai. + + Obligātie parametri: + \begin{enumerate} + \item Lietotāja paroles atjaunošanas marķieris - 16 simbolu gara virkne, kas tiek iegūta no saites parametriem; + \item Lietotāja jaunā parole - atbilst \hyperref[tab:IIDP06]{IIDP06}; + \item Lietotāja jaunās parole apstiprinājums - atbilst \hyperref[tab:IIDP06]{IIDP06}. + \end{enumerate} +} +{ + \item Ja lietotāja paroles identifikatora atjaunošanas marķieris nav iesniegts, parāda 1. paziņojumu. Beidz apstrādi; + \item Sameklē lietotāja ierakstu datubāzē, meklējot to pēc atjaunošanas marķiera; + \begin{enumerate} + \item Ja lietotāja ieraksts netika atrasts, parāda 2. paziņojumu. Beidz apstrādi; + \item Pārbauda, vai saitē iekļautais marķieris ir derīgs un nav novecojis. Ja tas ir nederīgs vai novecojis, parāda 2. paziņojumu. Beidz apstrādi. + \end{enumerate} + \item Pārbauda, vai parole un paroles apstiprinājums ir iesniegts; + \begin{enumerate} + \item Ja kāds no laukiem nav iesniegts parāda 4. paziņojumu ar attiecīgo lauku nosaukumiem. + \end{enumerate} + \item Pārbauda, vai jaunā parole atbilst drošības prasībām; + \begin{enumerate} + \item Ja nē, parāda 5. paziņojumu ar neizpildīto prasību sarastu. Beidz apstrādi. + \end{enumerate} + \item Pievieno parolei sāls simbolu virkni, šifrē paroli ar jaucējfunkciju; + \item Ieraksta marķiera derīguma termiņu pamaina uz tagadējo laiku; + \item Atjaunoto lietotāja ierakstu ieraksta datubāzē. + \begin{enumerate} + \item Ja ierakstīšana neizdevās, parāda 3. paziņojumu. + \end{enumerate} +} +{ + Izvades datu mērķis ir lietotāja informēšana par paroles atjaunošanas stāvokli. Lietotāja saskarnē parādās 6. paziņojums. + \begin{enumerate} + \item Paroles atjaunošanas stāvoklis - kods ar noteiktu stāvokli. + \end{enumerate} +} +{ + \begin{enumerate} + \item Paroles atjaunošanas marķieris nav norādīts! + \item Paroles atjaunošanas marķieris nav derīgs! + \item Sistēmas kļūda! Mēģiniet vēlreiz vēlāk! + \item Lauks: [neaizpildīto lauku saraksts] netika aizpildīts (/-i)! + \item Parolei ir jāsatur: [neizpildīto paroles prasību saraksts]! + \item Paroles atjaunošana ir veiksmīga! + \end{enumerate} +} diff --git a/src/requirements/functional-requirements/modules/auth/AMF05.tex b/src/requirements/functional-requirements/modules/auth/AMF05.tex index 2977893..ff68a97 100644 --- a/src/requirements/functional-requirements/modules/auth/AMF05.tex +++ b/src/requirements/functional-requirements/modules/auth/AMF05.tex @@ -11,38 +11,49 @@ Obligātie parametri: \begin{enumerate} - \item E-pasta adrese vai segvārds - simbolu virkne, kas tiek pārbaudīta uz atbilstību e-pasta adreses formātam, kam jāatbilst ``RFC 2822: Interneta ziņu formāts'' standarta prasībām. - Ja tā neabilst, tad tai jāatbilst sekojošām prasībām: simbolu virkne ar garumu no 6 līdz 20 simboliem, kas var saturēt burtciparu simbolus, skaitļus, defises, pasvītras, apostrofus. - \item Parole - simbolu virkne ar garumu no 8 līdz 128 simboliem, kas var saturēt burtciparu simbolus, skaitļus, atstarpi, speciālos simbolus: - izsaukuma zīmi, dubultpēdiņas, skaitļa zīmi, dolāra zīmi, procenta zīmi, ampersandu, pēdiņas, iekavas, figūriekavas, - zvaigznīti, plusu, komatu, mīnusu, punktu, slīpsvītru, kolu, semikolu, salīdzinājuma zīmes, vienādības zīmi, jautājuma zīmi, ``at'' zīmi, slīpsvītru, pasvītru, vertikālo joslu, tildi. + \item E-pasta adrese vai segvārds - simbolu virkne, kas tiek pārbaudīta uz atbilstību e-pasta adreses formātam, kam jāatbilst ``RFC 2822: Interneta ziņu formāts'' standarta prasībām; + \item Ja tā neatbilst, tad tai jāatbilst sekojošām prasībām: simbolu virkne ar garumu no 6 līdz 20 simboliem, kas var saturēt burtciparu simbolus, skaitļus, defises, pasvītras, apostrofus. + \item Parole - simbolu virkne ar garumu no 8 līdz 128 simboliem, kas var saturēt burtciparu simbolus, skaitļus, atstarpi, speciālos simbolus: izsaukuma zīmi, dubultpēdiņas, skaitļa zīmi, dolāra zīmi, procenta zīmi, ampersandu, pēdiņas, iekavas, figūriekavas, zvaigznīti, plusu, komatu, mīnusu, punktu, slīpsvītru, kolu, semikolu, salīdzinājuma zīmes, vienādības zīmi, jautājuma zīmi, ``et'' zīmi, slīpsvītru, pasvītru, vertikālo joslu, tildi. \end{enumerate} } { \begin{enumerate} - \item Pārbauda, vai e-pasta adrese vai segvārds un parole satur tikai pieļaujamos simbolus. - Ja nesatur, tad iegūst izmantotos neatļautos simbolus, tad parāda 1. paziņojumu ar laukiem un simboliem. - \item Pārbauda, vai e-pasta adrese vai un parole nepārsniedz noteikto garumu. - Ja satur, tad iegūst pārsniegto garumu parametru sarakstu un parāda 2. paziņojumu ar laukiem un garumiem. - \item Iegūst lietotāja autorizācijas datus no datubāzes, meklējot lietotājus pēc segvārda vai e-pasta adreses. - Ja tāds lietotājs netika atrasts, parāda 3. paziņojumu. - \item Pievieno ievades datu parolei datubāzē glabājamāi sāls simbolu virkni. - \item Pārbauda, vai lietotāja sniegtā paroles jaucējfunkcijas rezultāts sakrīt ar datubāzē glabātu vērtību. - Ja paroles jaucējfunkcijas rezultāts nesakrīt ar datubāzē glabāto vērtību, parāda 4. paziņojumu. - \item Ja sakrīt, ģenerē lietotāja sesijas marķieri. + \item Pārbauda vai visi lauki ir aizpildīti. + \begin{enumerate} + \item Ja kāds no laukiem nav aizpildīts, tad parāda 1. paziņojumu. + \end{enumerate} + \item Pārbauda, vai e-pasta adrese vai segvārds un parole satur tikai pieļaujamos simbolus; + \begin{enumerate} + \item Ja satur, tad iegūst izmantotos neatļautos simbolus, tad parāda 2. paziņojumu ar laukiem un simboliem. Beidz apstrādi. + \end{enumerate} + \item Pārbauda, vai e-pasta adrese vai un parole nepārsniedz noteikto garumu; + \begin{enumerate} + \item Ja satur, tad iegūst pārsniegto garumu parametru sarakstu un parāda 3. paziņojumu ar laukiem un garumiem. Beidz apstrādi. + \end{enumerate} + \item Iegūst lietotāja autentifikācijas datus no datubāzes, meklējot lietotājus pēc segvārdu vai e-pasta adreses; + \begin{enumerate} + \item Ja tāds lietotājs netika atrasts, parāda 4. paziņojumu. Beidz apstrādi. + \end{enumerate} + \item Pievieno ievades datu parolei sāls simbolu virkni; + \item Pārbauda, vai lietotāja sniegtā paroles jaucējfunkcijas rezultāts sakrīt ar datubāzē glabātu vērtību; + \begin{enumerate} + \item Ja paroles jaucējfunkcijas rezultāts nesakrīt ar datubāzē glabāto vērtību nesakrīt, parāda X paziņojumu. Beidz apstrādi. + \end{enumerate} + \item Ja sakrīt, ģenerē lietotāja sesijas marķieri. Saglabā marķieri kā sīkdatni lietotāja pārlūkprogrammas datu krātuvē. \end{enumerate} } { - Izvades datu mērķis ir noteikt, vai lietotājs tiks pāradresēts un kurā lapā lietotājs tiks pāradresēts, un ierakstīt sesijas marķieri lietotāja pārlūkprogrammas datu krātuvē. + Izvades datu mērķis ir noteikt, vai lietotājs tiks pāradresēts un kurā lapā lietotājs tiks pāradresēts. + Lietotāja saskarnē lietotājs tiek pāradresēts uz autentificēto lietotāju sākuma lapu. \begin{enumerate} - \item Reģistrācijas apstiprinājuma stāvoklis - kods ar noteiktu stāvokli. - \item Lietotāja sesijas marķieris. + \item Paroles atjaunošanas stāvoklis - kods ar noteiktu stāvokli. \end{enumerate} } { \begin{enumerate} - \item {}[Parametra nosaukums] nedrīkst saturēt: [izmantoto parametra neatļauto simbolu saraksts]! - \item {}[Parametra nosaukums] nedrīkst pārsniegt [noteikto parametra maksimālo simbolu skaits]! - \item {}Lietotājs ar šādu segvārdu vai e-pastu netika atrasts vai parole nav pareiza! + \item Lauks: [neaizpildīto lauku saraksts] netika aizpildīts (/-i)!; + \item {}[Parametra nosaukums] nedrīkst saturēt: [izmantoto parametra neatļauto simbolu saraksts]!; + \item {}[Parametra nosaukums] nedrīkst pārsniegt [noteikto parametra maksimālo simbolu skaits]!; + \item Lietotājs ar šādu segvārdu vai e-pastu netika atrasts vai parole nav pareiza! \end{enumerate} } diff --git a/src/requirements/functional-requirements/modules/auth/AMF06.tex b/src/requirements/functional-requirements/modules/auth/AMF06.tex index d72c045..76e4b35 100644 --- a/src/requirements/functional-requirements/modules/auth/AMF06.tex +++ b/src/requirements/functional-requirements/modules/auth/AMF06.tex @@ -4,28 +4,30 @@ {Lietotāja atteikšanās} {AMF06} { - Funkcijas mērķis ir beigt lietotāja pārlūkprogrammas asociāciju ar noteiktu lietotāju kontu. + Funkcijas mērķis ir pārtraukt lietotāja pārlūkprogrammas sasaisti ar noteiktu lietotāju kontu. } { - Ievades dati tiek saņemti no lietotāja pārlūkprogrammas. + Ievades dati tiek saņemti no lietotāja - klikšķis uz atteikšanās pogu. Obligātie parametri: \begin{enumerate} \item Lietotāja sesijas marķieris - 16 simbolu gara virkne, kas tiek glabāta lietotāja pārlūkprogrammā. \end{enumerate} - } { \begin{enumerate} - \item No lietotāja pārlūkprogrammas tiek iegūts sesijas marķieris. - \item Ja sesijas marķieris eksistē, tas tiek izdzēsts. - Lietotājs tiek pāradresēts uz mājaslapas sākuma lapu. + \item No lietotāja pārlūkgrammas tiek iegūts sesijas marķieris; + \item Ja sesijas marķieris eksistē, tas tiek izdzēsts. Lietotājs tiek pāradresēts uz mājaslapas sākuma lapu. + \begin{enumerate} + \item Ja marķiera izdzēšana nav veiksmīga. Parāda 1. paziņojumu. + \end{enumerate} \end{enumerate} } { - Izvades datu mērķis ir noteikt, vai lietotājs tiks pāradresēts un kurā lapā lietotājs tiks pāradresēts. + Izvades datu funkcijai nav. Lietotājs tiek pāradresēts mājaslapas sākuma lapā. +} +{ \begin{enumerate} - \item Atteikšanās apstiprinājuma stāvoklis - kods ar noteiktu stāvokli. + \item Atteikšanās neizdevās! Mēģiniet pārlādēt lapu vai mēģiniet vēlāk! \end{enumerate} } -{} diff --git a/src/requirements/functional-requirements/modules/auth/AMF07.tex b/src/requirements/functional-requirements/modules/auth/AMF07.tex index 043e74f..ee34e57 100644 --- a/src/requirements/functional-requirements/modules/auth/AMF07.tex +++ b/src/requirements/functional-requirements/modules/auth/AMF07.tex @@ -4,10 +4,10 @@ {Lietotāja konta apstiprināšana} {AMF07} { - Funkcijas mērķis ir apstiprināt lietotāja konta e-pasta adrese, i.e., apstiprināt to, ka lietotājam pieder tā norādītā e-pasta adrese. + Funkcijas mērķis ir apstiprināt lietotāja konta e-pasta adresi, i.e., apstiprināt to, ka lietotājam pieder norādītā e-pasta adrese. } { - Ievaddati tiek iegūti no apstiprinājuma vietrādes parametriem, ar kuras lietotājs piekļūst sistēmas funkcijai. + Ievaddati tiek iegūti no apstiprinājuma vietrādes parametriem, ar kuras lietotājs piekļūst funkcijai. Obligātie parametri: \begin{enumerate} @@ -16,30 +16,32 @@ } { + \item Pārbauda, vai ievades datos ir e-pasta apstiprinājuma marķieris; \begin{enumerate} - \item Pārbauda, vai ievades datos ir e-pasta apstiprinājuma marķieris. - Ja tā nav, tad parāda 1. paziņojumu. - \item Pārbauda, vai e-pasta adreses apstiprinājuma marķieris atbilst sagaidāmam garumam. - Ja neatbilst, parāda 2. paziņojumu. - \item Meklē datubāzē lietotājus ar iesniegto marķieri. - Ja tāds lietotājs netiek atrasts, parāda 3. paziņojumu. - Ja datubāzē atrastā lietotāja e-pasta apstiprināšanas karodziņš apzīmē apstiprinātu e-pastu, parāda 4. paziņojumu. - \item Attiecīgā datubāzes ierakstam pamaina karodziņa stāvokli uz apstiprinātu. + \item Ja tā nav, tad parāda 1. paziņojumu. Beidz apstrādi. \end{enumerate} + \item Pārbauda, vai e-pasta adreses apstiprinājuma marķieris atbilst sagaidāmam garumam; + \begin{enumerate} + \item Ja neatbilst, parāda 2. paziņojumu. Beidz apstrādi. + \end{enumerate} + \item Meklē datubāzē lietotājus ar iesniegto marķieri; + \begin{enumerate} + \item Ja tāds lietotājs netiek atrasts, parāda 2. paziņojumu. Beidz apstrādi; + \item Ja datubāzē atrastā lietotāja e-pasta apstiprināšanas karodziņš apzīmē apstiprinātu e-pastu, parāda 3. paziņojumu. Beidz apstrādi. + \end{enumerate} + \item Ierakstam pamaina karodziņa stāvokli uz kodu, kas atbilst apstiprinātam stāvoklim un rediģētu ierakstu ieraksta datubāzē. } { - Izvades datu mērķis ir noteikt, vai lietotājs tiks pāradresēts. - + Izvades datu mērķis ir lietotāja informēšana par konta apstiprināšanas stāvokli. Lietotājam tiek parādīts 4. paziņojums. \begin{enumerate} \item E-pasta adreses apstiprinājuma stāvoklis - kods ar noteiktu stāvokli. \end{enumerate} - } { \begin{enumerate} - \item Apstiprināšanas saite nav korekta: marķieris nav norādīts! Mēģiniet vēlreiz vai pieprasiet atkārtotu apstiprinājuma ziņas izsūtīšanu! - \item Apstiprināšanas saite nav korekta: marķieris nav korekts! Mēģiniet vēlreiz vai pieprasiet atkārtotu apstiprinājuma ziņas izsūtīšanu! - \item Marķieris nav aktuāls vai nav korekts! Mēģiniet vēlreiz vai pieprasiet atkārtotu apstiprinājuma ziņas izsūtīšanu! - \item E-pasts jau ir apstiprināts! + \item Apstiprināšanas saite nav korekta: marķieris nav norādīts! Mēģiniet vēlreiz vai pieprasiet atkārtotu apstiprinājuma ziņas izsūtīšanu!; + \item Marķieris nav aktuāls vai nav korekts! Mēģiniet vēlreiz vai pieprasiet atkārtotu apstiprinājuma ziņas izsūtīšanu!; + \item E-pasts jau ir apstiprināts!; + \item E-pasts ir veiksmīgi apstiprināts! \end{enumerate} } diff --git a/src/requirements/functional-requirements/modules/index.tex b/src/requirements/functional-requirements/modules/index.tex index 800e407..0f48222 100644 --- a/src/requirements/functional-requirements/modules/index.tex +++ b/src/requirements/functional-requirements/modules/index.tex @@ -1,3 +1,4 @@ +\setlength{\parindent}{0pt} \input{./src/requirements/functional-requirements/modules/auth/index.tex} \input{./src/requirements/functional-requirements/modules/user/index.tex} \input{./src/requirements/functional-requirements/modules/premium-user/index.tex} @@ -7,3 +8,4 @@ \input{./src/requirements/functional-requirements/modules/game-progress/index.tex} \input{./src/requirements/functional-requirements/modules/game-role/index.tex} \input{./src/requirements/functional-requirements/modules/game-setup/index.tex} +\setlength{\parindent}{1cm}