5799f97114f4178bf916bddb10131df6eb70ac46
howto/come_gestire_password.md
... | ... | @@ -1,17 +1,23 @@ |
1 | -Quando nel programma si deve mettere l'inserimento di una password con anche la possibilità di cambiare e salvare una nuova password, il modo per gestire queste operazioni è di realizzare una o più pagine grafiche (a seconda del progetto) in cui mettere un edit per l'inserimento della password e una pagina grafica in cui poter effettuare una modifica e salvataggio della password. |
|
1 | +Quando nel programma si deve mettere l'inserimento di una password con anche la possibilità di cambiare e salvare una nuova password, il modo per gestire queste operazioni è di inserire un edit su una pagina grafica per l'inserimento della password e un' altra pagina grafica in cui poter effettuare una modifica e salvataggio della nuova password. |
|
2 | 2 | |
3 | 3 | Si utilizza anche una serie di funzioni per gestire le operazioni. |
4 | 4 | |
5 | -Nel seguente esempio vine mostrato la gestione dell' inserimento e della modifca di due password di un progetto. |
|
5 | +Nel seguente esempio vine mostrato la gestione dell' inserimento e della modifca di password di un progetto. |
|
6 | 6 | |
7 | -Più avanti troverai anche le parti di codice scritte nei file .c relativi alle pagine grafiche. |
|
7 | +Più avanti troverai anche le parti di codice scritte nei file .c relativi alle pagine. |
|
8 | 8 | |
9 | 9 | Nel **common.h** (o comunque in file .h inclusi nel common): |
10 | 10 | |
11 | 11 | unsigned char superadmin_password[32]; // dichiara la password di accesso del superadmin |
12 | 12 | unsigned char manutentore_password[32]; // dichiara la password di accesso del manutentore |
13 | 13 | |
14 | + unsigned char new_superadmin_password[32]; // dichiara l' array relativo alla nuova password del super-admin |
|
15 | + // nel caso si decida di modificarla |
|
16 | + unsigned char new_manutentore_password[32]; // dichiara l' array relatIvo alla nuova password del manutentore |
|
17 | + // nel caso si decida di modificarla |
|
18 | + |
|
14 | 19 | volatile U8 my_password[32]; // array ralativo alla password che deve essere inserita |
20 | + |
|
15 | 21 | volatile char livello_accesso; // variabile che indica chi ha effettuato l' accesso |
16 | 22 | volatile int flag_visu_msg_password = 0; // flag relativa alla visualizzazione del messaggio di corretta o errata |
17 | 23 | // dopo l' inserimento della password |
... | ... | @@ -33,14 +39,14 @@ Nel **common.h** (o comunque in file .h inclusi nel common): |
33 | 39 | flag_visu_msg_password = 0; // dopo 2 sec dall' inserimento della password (vedi page_reqPassword.c) |
34 | 40 | } |
35 | 41 | |
36 | - // funzione per impostare i valori di default delle password |
|
42 | + // funzione per impostare i caratteri di default delle password |
|
37 | 43 | void reset_pasword(void) |
38 | 44 | { |
39 | 45 | superadmin_password = "1234"; |
40 | 46 | manutentore_password = "5678"; |
41 | 47 | } |
42 | 48 | |
43 | -Nella pagina (page_reqPassword.c) in cui viene richiesto di inserire la password, la variabile my_password è associata ad un edit nel quale è possibile inserire la password ed è presente un label (label1) che scrive se la password è corretta o errata: |
|
49 | +Nella pagina (page_reqPassword.c) in cui viene richiesto di inserire la password, la variabile my_password è associata ad un edit nel quale è possibile inserire la password con un pulsante di conferma della password inserita ed è presente un label (label1) che scrive se la password è corretta o errata: |
|
44 | 50 | |
45 | 51 | #include "page_reqPassword.h" |
46 | 52 | |
... | ... | @@ -54,14 +60,14 @@ Nella pagina (page_reqPassword.c) in cui viene richiesto di inserire la password |
54 | 60 | // ------------------------------- |
55 | 61 | // methods: |
56 | 62 | // ------------------------------- |
57 | - void Event(passwordOK_onmouseup)() // quando il pulsante passwordOK viene premuto |
|
63 | + void Event(passwordOK_onmouseup)() // quando il pulsante passwordOK di conferma password viene attivato |
|
58 | 64 | { // (confermando la password inserita) |
59 | 65 | |
60 | 66 | if (!strcmp(my_password, superadmin_password)) // se la password inserita è uguale alla |
61 | 67 | // password impostata per il super-admin |
62 | 68 | livello_accesso = 2; |
63 | 69 | else if (!strcmp(my_password, manutentore_password)) // se la password inserita è uguale alla |
64 | - // password impostat per il manutentore |
|
70 | + // password impostata per il manutentore |
|
65 | 71 | livello_accesso = 1; |
66 | 72 | else // se la password non è corretta |
67 | 73 | livello_accesso = 0; |
... | ... | @@ -80,7 +86,7 @@ Nella pagina (page_reqPassword.c) in cui viene richiesto di inserire la password |
80 | 86 | { |
81 | 87 | stampa_msg_password(); // stampa la scritta |
82 | 88 | |
83 | - if (livello_accesso == 3 || livello_accesso == 2 || livello_accesso == 1) // se la password è corretta |
|
89 | + if (livello_accesso == 2 || livello_accesso == 1) // se la password è corretta |
|
84 | 90 | me->fontcolor = GREEN; // il label diventa di colore verde |
85 | 91 | else // se la password è errata |
86 | 92 | me->fontcolor = RED; // il label diventa di colore rosso |
... | ... | @@ -89,3 +95,55 @@ Nella pagina (page_reqPassword.c) in cui viene richiesto di inserire la password |
89 | 95 | } |
90 | 96 | } |
91 | 97 | |
98 | +Nella pagina **page_modPassword.c**: |
|
99 | + |
|
100 | + #include "page_modPassword.h" |
|
101 | + // -------------------------------+ |
|
102 | + // form page_modPassword |
|
103 | + // -------------------------------+ |
|
104 | + void form_page_modPassword(void) |
|
105 | + { |
|
106 | + object(TPage,(void **)&page_modPassword,page_modPassword_Body,0,0,&Null,None,1,0,"PAGE"); |
|
107 | + } |
|
108 | + // ------------------------------- |
|
109 | + // methods: |
|
110 | + // ------------------------------- |
|
111 | + void Event(onfirst)() |
|
112 | + { |
|
113 | + snprintf(new_superadmin_password, sizeof(new_superadmin_password), "%s", superadmin_password); |
|
114 | + snprintf(new_manutentore_password, sizeof(new_manutentore_password), "%s", manutentore_password); |
|
115 | + } |
|
116 | + // ------------------------------- |
|
117 | + void Event(button1_onmousedown)() |
|
118 | + { |
|
119 | + snprintf(dfRic.superadmin_password_Ric, sizeof(dfRic.superadmin_password_Ric), "1018"); |
|
120 | + snprintf(dfRic.manutentore_password_Ric, sizeof(dfRic.manutentore_password_Ric), "118"); |
|
121 | + salva(); |
|
122 | + snprintf(superadmin_password, sizeof(superadmin_password), "%s", dfRic.superadmin_password_Ric); |
|
123 | + snprintf(manutentore_password, sizeof(manutentore_password), "%s", dfRic.manutentore_password_Ric); |
|
124 | + } |
|
125 | + // ------------------------------- |
|
126 | + void Event(label1_onentry)() |
|
127 | + { |
|
128 | + me2->visible = visualizzaEsitoSalvataggioOK; |
|
129 | + } |
|
130 | + // ------------------------------- |
|
131 | + void Event(label2_onentry)() |
|
132 | + { |
|
133 | + me2->visible = visualizzaEsitoSalvataggioNO; |
|
134 | + } |
|
135 | + // ------------------------------- |
|
136 | + void Event(bitmap1_onmousedown)() |
|
137 | + { |
|
138 | + v_tik(30); |
|
139 | + pagina = _page_intro; |
|
140 | + page_end = 1; |
|
141 | + } |
|
142 | + // ------------------------------- |
|
143 | + void Event(bitmap2_onmousedown)() |
|
144 | + { |
|
145 | + v_tik(30); |
|
146 | + snprintf(dfRic.superadmin_password_Ric, sizeof(dfRic.superadmin_password_Ric), "%s", superadmin_password); |
|
147 | + snprintf(dfRic.manutentore_password_Ric, sizeof(dfRic.manutentore_password_Ric), "%s", manutentore_password); |
|
148 | + salva(); |
|
149 | + } |
|
... | ... | \ No newline at end of file |