howto/come_gestire_password.md
... ...
@@ -19,8 +19,10 @@ Nel **common.h** (o comunque in file .h inclusi nel common):
19 19
volatile U8 my_password[32]; // array ralativo alla password che deve essere inserita
20 20
21 21
volatile char livello_accesso; // variabile che indica chi ha effettuato l' accesso
22
+
22 23
volatile int flag_visu_msg_password = 0; // flag relativa alla visualizzazione del messaggio di corretta o errata
23 24
// dopo l' inserimento della password
25
+ volatile int flag_msg_salva_password = 0; // flag relativa alla scritta di salvataggio effettuato dopo la modifica delle password
24 26
25 27
// funzione che stampa sulla pagina grafica la scritta se la password è corretta o errata
26 28
void stampa_msg_password(void)
... ...
@@ -39,11 +41,17 @@ Nel **common.h** (o comunque in file .h inclusi nel common):
39 41
flag_visu_msg_password = 0; // dopo 2 sec dall' inserimento della password (vedi page_reqPassword.c)
40 42
}
41 43
44
+ // funzione relativa alla flag di visualizzazione del messaggio di "Password salvata" (vedi page_modPassword.c)
45
+ void stop_msg_salva_password(void)
46
+ {
47
+ flag_msg_salva_password = 0;
48
+ }
49
+
42 50
// funzione per impostare i caratteri di default delle password
43 51
void reset_pasword(void)
44 52
{
45
- superadmin_password = "1234";
46
- manutentore_password = "5678";
53
+ snprintf(superadmin_password, sizeof(superadmin_password), "%s", "1234");
54
+ snprintf(manutentore_password, sizeof(manutentore_password), "%s", "5678");
47 55
}
48 56
49 57
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:
... ...
@@ -72,7 +80,7 @@ Nella pagina (page_reqPassword.c) in cui viene richiesto di inserire la password
72 80
else // se la password non è corretta
73 81
livello_accesso = 0;
74 82
75
- // la flag di visualizzazione messaggio vine messa a 1 e viene rimessa a 0 ogni 2 sec
83
+ // la flag di visualizzazione messaggio vine messa a 1 e viene rimessa a 0 dopo 2 sec
76 84
flag_visu_msg_password = 1;
77 85
remove_timer(stop_visu_msg_password);
78 86
exec_timer(stop_visu_msg_password, ONCE, 2000);
... ...
@@ -80,7 +88,8 @@ Nella pagina (page_reqPassword.c) in cui viene richiesto di inserire la password
80 88
// -------------------------------
81 89
void Event(label1_onentry)()
82 90
{
83
- // label1 viene visualizzato solo se la flag di visualizzazione messaggio è 1 (ogni 2 sec)
91
+ // label1 viene visualizzato solo se la flag di visualizzazione messaggio è 1
92
+ // dopo 2 sec il messaggio non è più visibile
84 93
me2->visible = flag_visu_msg_password;
85 94
if (flag_visu_msg_password) // se il label è visibile
86 95
{
... ...
@@ -91,11 +100,11 @@ Nella pagina (page_reqPassword.c) in cui viene richiesto di inserire la password
91 100
else // se la password è errata
92 101
me->fontcolor = RED; // il label diventa di colore rosso
93 102
94
- me->rgb_fontcolor=0;
103
+ me->rgb_fontcolor = 0;
95 104
}
96 105
}
97 106
98
-Nella pagina **page_modPassword.c**:
107
+Nella pagina **page_modPassword.c**, in cui si può modificare la password, le varibili new_seperadmin_password e new_manutentore_password sono associate a due edit nella parte grafica in cui si può inserire le nuove password, ed è presente anche un pulsante di reset che reimposta le password con i caratteri di default, ed è presente una bitmap che se premuta salva le nuove password inserite:
99 108
100 109
#include "page_modPassword.h"
101 110
// -------------------------------+
... ...
@@ -108,42 +117,37 @@ Nella pagina **page_modPassword.c**:
108 117
// -------------------------------
109 118
// methods:
110 119
// -------------------------------
111
- void Event(onfirst)()
120
+ void Event(onfirst)() // all' inizio, negli edit delle nuove password, vengono stampate le password attualmente impostate
112 121
{
113 122
snprintf(new_superadmin_password, sizeof(new_superadmin_password), "%s", superadmin_password);
114 123
snprintf(new_manutentore_password, sizeof(new_manutentore_password), "%s", manutentore_password);
115 124
}
116 125
// -------------------------------
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)()
126
+ void Event(button1_onmousedown)() // quando si preme il pulsante di reset
127 127
{
128
- me2->visible = visualizzaEsitoSalvataggioOK;
129
- }
130
- // -------------------------------
131
- void Event(label2_onentry)()
132
- {
133
- me2->visible = visualizzaEsitoSalvataggioNO;
128
+ reset_password(); // vengono reimpostate le password con i caratteri di default
129
+
130
+ // stampa negli edit le password reimpostate
131
+ snprintf(new_superadmin_password, sizeof(new_superadmin_password), "%s", superadmin_password);
132
+ snprintf(new_manutentore_password, sizeof(new_manutentore_password), "%s", manutentore_password);
134 133
}
135 134
// -------------------------------
136
- void Event(bitmap1_onmousedown)()
135
+ void Event(bitmap1_onmousedown)() // quando viene premuta la bitmap per il salvataggio
137 136
{
138 137
v_tik(30);
139
- pagina = _page_intro;
140
- page_end = 1;
138
+
139
+ // salva le nuove password negli array delle password correnti
140
+ snprintf(superadmin_password, sizeof(superadmin_password), "%s", new_superadmin_password);
141
+ snprintf(manutentore_password, sizeof(manutentore_password), "%s", new_manutentore_password);
142
+
143
+ // la flag del salvataggio che fa apparire il messaggio di password salvata viene messa a 1 e dopo 3 sec viene rimessa a 0
144
+ flag_msg_salva_password = 1;
145
+ remove_timer(stop_msg_salva_password);
146
+ exec_timer(stop_msg_salva password, ONCE, 3000);
141 147
}
142 148
// -------------------------------
143
- void Event(bitmap2_onmousedown)()
149
+ void Event(label1_onentry)() // il label1 ("Password salvata") è visibile quando la flag relativa al messaggio di salvataggio è 1
144 150
{
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
0
+ me2->visible = flag_msg_salva_password;
1
+ }
2
+