\moduleFunctionTable
{Lietotāja reģistrācija}
{mod-func-auth-reg}
{Lietotāja reģistrācija}
{AMF01}
{
	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 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;
		\item Biogrāfiskā informācija.
	\end{enumerate}
}
{
	\begin{enumerate}
		\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.
		      \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 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: [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}
}
