Patch level : 10.0 298

Files correlati     : ba0 ba1
Ricompilazione Demo : [ ]
Commento            :
Aggiunta gestione scadenza password alla maschera di gestione utenti
(solo per utente ADMIN)


git-svn-id: svn://10.65.10.50/trunk@18816 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2009-05-05 13:13:30 +00:00
parent 5dc7e80139
commit 50b67c3ab3
7 changed files with 99 additions and 140 deletions

View File

@ -1037,8 +1037,7 @@ bool TMenu_application::ask_user_password(TString& utente)
if (ok && users.curr().exist(USR_DATAPWD))
{
TConfig studio_ini(CONFIG_STUDIO, "Main");
const long expiration = studio_ini.get_long("PasswordExpiration");
const long expiration = ini_get_int(CONFIG_STUDIO, "Main", "PasswordExpiration");
bool runba = expiration > 0;
while (runba)
{

View File

@ -1,56 +1,2 @@
#define F_USER 151
#define F_PASSWORD 152
#define F_USERDESC 153
#define F_GROUP 154
#define F_GROUPNAME 155
#define F_PROVA 156
#define F_DATAPWD 157
#define F_DATASCAD 158
#define F_APPLICAT 159
#define F_NOWRITE 160
#define F_MODULI 170
#define F_PERMESSI 171
#define F_PROPERTIES 172
#define G_SUPERUSER 33
#define F_BASE 200
#define F_74 201
#define F_75 202
#define F_76 203
#define F_77 204
#define F_GI 205
#define F_SE 206
#define F_CG 207
#define F_ST 208
#define F_MI 209
#define F_AI 210
#define F_CE 211
#define F_AD 212
#define F_SC 213
#define F_MU 214
#define F_CM 215
#define F_73 216
#define F_AT 217
#define F_IN 218
#define F_PO 219
#define F_AB 220
#define F_NI 221
#define F_NR 222
#define F_PC 223
#define F_AF 224
#define F_IC 225
#define F_IS 226
#define F_TC 227
#define F_TM 228
#define F_VE 231
#define F_MG 232
#define F_OR 233
#define F_EF 234
#define F_DB 235
#define F_SP 236
#define F_NOMEMOD 101
#define F_ENABLE 102
#define F_CODE 103

View File

@ -9,7 +9,7 @@
#include "ba1.h"
#include "ba1500.h"
#include "ba0100a.h"
#include "ba1400a.h"
#include <user.h>
@ -601,7 +601,7 @@ void TSet_users::build_tree(const TRectype* r)
// mostra le abilitazioni
void TSet_user_passwd::enable_aut()
{
const bool superuser = _msk->get(F_USER) == ::dongle().administrator();
const bool superuser = _msk->get(F_USER) == dongle().administrator();
const int uns = _im->unassigned();
TSheet_field& sf = sheet_field();
const int itms = sf.items();
@ -654,7 +654,7 @@ bool TSet_users::k_notify(TSheet_field& f, int r, KEY k)
bool TSet_user_passwd::user_create()
{
const bool superuser = user() == ::dongle().administrator();
const bool superuser = user() == dongle().administrator();
_rel = new TRelation(LF_USER);
_im = new TInformazione_moduli;
@ -695,6 +695,11 @@ int TSet_users::read(TMask& m)
{
const TRectype& r = get_relation()->curr();
build_tree(&r);
TConfig ini(CONFIG_STUDIO, "Main");
m.set(F_PWDMIN, ini.get("MinPwdLen"));
m.set(F_PWDSCAD, ini.get("PasswordExpiration"));
}
return err;
}
@ -749,6 +754,10 @@ void TSet_users::put_in_record(const TMask& m)
}
}
r.put(USR_PERMISSION, prop_field);
TConfig ini(CONFIG_STUDIO, "Main");
ini.set("MinPwdLen", m.get(F_PWDMIN));
ini.set("PasswordExpiration", m.get(F_PWDSCAD));
}
int TSet_user_passwd::write(const TMask& m)
@ -854,3 +863,4 @@ int ba1400(int argc, char** argv)
}
return 0;
}

58
ba/ba1400a.h Executable file
View File

@ -0,0 +1,58 @@
#define F_USER 151
#define F_PASSWORD 152
#define F_USERDESC 153
#define F_GROUP 154
#define F_GROUPNAME 155
#define F_PROVA 156
#define F_DATAPWD 157
#define F_DATASCAD 158
#define F_APPLICAT 159
#define F_NOWRITE 160
#define F_PWDMIN 161
#define F_PWDSCAD 162
#define F_MODULI 170
#define F_PERMESSI 171
#define F_PROPERTIES 172
#define G_SUPERUSER 33
#define F_BASE 200
#define F_74 201
#define F_75 202
#define F_76 203
#define F_77 204
#define F_GI 205
#define F_SE 206
#define F_CG 207
#define F_ST 208
#define F_MI 209
#define F_AI 210
#define F_CE 211
#define F_AD 212
#define F_SC 213
#define F_MU 214
#define F_CM 215
#define F_73 216
#define F_AT 217
#define F_IN 218
#define F_PO 219
#define F_AB 220
#define F_NI 221
#define F_NR 222
#define F_PC 223
#define F_AF 224
#define F_IC 225
#define F_IS 226
#define F_TC 227
#define F_TM 228
#define F_VE 231
#define F_MG 232
#define F_OR 233
#define F_EF 234
#define F_DB 235
#define F_SP 236
#define F_NOMEMOD 101
#define F_ENABLE 102
#define F_CODE 103

View File

@ -1,4 +1,4 @@
#include "ba0100a.h"
#include "ba1400a.h"
TOOLBAR "" 0 0 0 2
#include <relapbar.h>
@ -110,9 +110,31 @@ ENDPAGE
PAGE "Permessi" 0 2 0 0
GROUPBOX DLG_NULL 78 3
BEGIN
PROMPT 1 0 "@bParametri di sicurezza per la password"
END
NUMBER F_PWDMIN 2
BEGIN
PROMPT 2 1 "Lunghezza minima "
NUM_EXPR #THIS_FIELD>=4
CHECKTYPE REQUIRED
WARNING "La lunghezza minima della password deve essere almeno 4 caratteri"
FLAGS "U"
GROUP G_SUPERUSER
END
NUMBER F_PWDSCAD 2
BEGIN
PROMPT 42 1 "Giorni di validita' "
FLAGS "U"
GROUP G_SUPERUSER
END
TREE F_PERMESSI -3 -8
BEGIN
PROMPT 0 1 ""
PROMPT 0 3 ""
END
STRING F_APPLICAT 80 16
@ -141,7 +163,7 @@ ENDPAGE
ENDMASK
PAGE "Permessi" -1 -1 60 11
PAGE "Permessi" 0 2 0 0
STRING F_NOMEMOD 40
BEGIN

View File

@ -1098,74 +1098,6 @@ void TAttivazione_moduli::print_answer()
}
}
/*
void TAttivazione_moduli::print_listino()
{
TRequest_form form("ba1500a");
TForm_item& num = form.find_field('B', odd_page, 101);
TForm_item& descr = form.find_field('B', odd_page, 102);
TForm_item& codice = form.find_field('B', odd_page, 103);
TForm_item& price = form.find_field('B', odd_page, 104);
TForm_item& manut = form.find_field('B', odd_page, 105);
TInstall_ini ini;
ini.write_protect();
const bool special = _wanted_assist > ::dongle().year_assist() || _wanted_users != 0;
const word users = max(_wanted_users, ::dongle().max_users());
TWait_cursor hourglass;
TSheet_field& sheet = _msk->sfield(F_MODULI);
{
int found = 0;
TString str;
real full, assist;
FOR_EACH_SHEET_ROW(sheet, r, row)
{
const int module = row->get_int(2) ;
const bool active = ::dongle().active(module);
str = _im->get_name(module);
ini.prices(str, users, full, assist, false);
if (!full.is_zero() || ! assist.is_zero())
{
if (found++ == 0)
{
printer().open();
form.find_field('H',odd_page,1).set(TR("LISTINO"));
num.set("");
str.format(TR("Numero utenti: %u"), users );
descr.set(str);
form.print(-1);
}
price.set(full.string());
manut.set(assist.string());
str.format("%3d", found);
num.set(str);
str = row->get(0);
descr.set(str);
str = "";
codice.set(str);
form.print(-1);
}
}
if (found)
{
form.print_footer();
printer().close();
}
}
}
*/
bool TAttivazione_moduli::new_module_requested()
{
TSheet_field& sheet = _msk->sfield(F_MODULI);
@ -1238,20 +1170,12 @@ bool TAttivazione_moduli::create()
_msk->set_handler(F_CHANGEUSERS, change_users_handler);
_msk->set_handler(F_CHANGEASSIST, change_assist_handler);
_msk->set_handler(F_PRINT, print_handler);
/*
_msk->set_handler(F_PRINTLIST, printlist_handler);
_msk->set_handler(F_AGGLISTINO, aggiorna_listino_handler);
*/
const TDongleType mydongle = ::dongle().type();
if (mydongle == _aga_dongle)
{
_msk->show(F_AGA);
_msk->set_handler(F_AGA, aga_handler);
/*
_msk->show(F_MODLISTINO);
_msk->set_handler(F_MODLISTINO, modifica_listino_handler);
*/
}
TSheet_field& sf = _msk->sfield(F_MODULI);

View File

@ -723,7 +723,7 @@ bool TInstaller_mask::move_file(const TFilename& src, const TFilename& dst) cons
aga_unzip(src, dest.path());
if (write_ok)
::remove(src);
src.fremove();
if (write_ok)
{
@ -1093,7 +1093,7 @@ bool TInstaller_mask::install(const TString& module, int patchlevel)
//scompattamento vero e proprio dello zip
aga_unzip(totti, tempdir); // Scompatta il file totale zip
::remove(totti); // Elimina il file totale zip
totti.fremove(); // Elimina il file totale zip
// TRASFERIMENTO