Patch level :4.0 790
Files correlati : Ricompilazione Demo : [ ] Commento :nuove procedure aggiornamento client git-svn-id: svn://10.65.10.50/trunk@15643 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
8678ec432c
commit
3283e4b731
@ -4,7 +4,6 @@
|
||||
#include <automask.h>
|
||||
#include <controls.h>
|
||||
#include <dongle.h>
|
||||
#include <execp.h>
|
||||
#include <modaut.h>
|
||||
#include <execp.h>
|
||||
#include <recarray.h>
|
||||
@ -66,9 +65,7 @@ protected:
|
||||
int do_level();
|
||||
int do_tree();
|
||||
int do_explore();
|
||||
|
||||
int get_user_status(const char* usr) const;
|
||||
bool set_user_status(const char* usr, int status) const;
|
||||
|
||||
bool check_user();
|
||||
|
||||
static bool menu_item_handler(TMask_field& f, KEY k);
|
||||
@ -1070,61 +1067,6 @@ bool TMenu_application::ask_user_password(TString& utente)
|
||||
return ok;
|
||||
}
|
||||
|
||||
// Testa stato utente: 0 inesistente; 1 = esiste; 2 connesso; 4 conversione in corso
|
||||
// ATTENZIONE: non usare mai cache() in ba0!
|
||||
int TMenu_application::get_user_status(const char* usr) const
|
||||
{
|
||||
CHECK(usr && *usr, "Utente nullo");
|
||||
|
||||
int status = 0;
|
||||
if (prefix_valid())
|
||||
{
|
||||
TLocalisamfile utonti(LF_USER);
|
||||
utonti.put(USR_USERNAME, usr);
|
||||
status = utonti.read() == NOERR;
|
||||
if (status)
|
||||
{
|
||||
if (utonti.get_bool(USR_CONNECTED))
|
||||
status |= 2;
|
||||
if (dongle().administrator() == usr && utonti.get(USR_AUTSTR) == "CONVERTING")
|
||||
status |= 4;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// Senza file aperti questo e' il massimo che posso fare
|
||||
status = dongle().administrator() == usr;
|
||||
}
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
bool TMenu_application::set_user_status(const char* usr, int status) const
|
||||
{
|
||||
CHECK(usr && *usr, "Utente nullo");
|
||||
|
||||
bool ok = false;
|
||||
if (prefix_valid())
|
||||
{
|
||||
TLocalisamfile utonti(LF_USER);
|
||||
utonti.put(USR_USERNAME, usr);
|
||||
if (utonti.read(_isequal, _lock) == NOERR)
|
||||
{
|
||||
utonti.put(USR_CONNECTED, status & 2 ? "X" : "");
|
||||
ok = utonti.rewrite() == NOERR;
|
||||
}
|
||||
}
|
||||
if (status & 2)
|
||||
{
|
||||
// Memorizza utente per riproporlo la prossima volta
|
||||
TConfig campo_ini(CONFIG_INSTALL, "Main");
|
||||
campo_ini.set("User", usr);
|
||||
}
|
||||
|
||||
return ok;
|
||||
}
|
||||
|
||||
|
||||
bool TMenu_application::check_user()
|
||||
{
|
||||
bool ok = dongle().type() == _no_dongle;
|
||||
@ -1137,7 +1079,7 @@ bool TMenu_application::check_user()
|
||||
TConfig campo_ini(CONFIG_INSTALL, "Main");
|
||||
const bool use_system_user = campo_ini.get_bool("AutoLogin");
|
||||
if (use_system_user)
|
||||
ok = get_user_status(utente) != 0; // L'utente esiste!
|
||||
ok = !cache().get(LF_USER, utente).empty();
|
||||
}
|
||||
|
||||
if (!ok)
|
||||
@ -1145,8 +1087,8 @@ bool TMenu_application::check_user()
|
||||
|
||||
if (ok)
|
||||
{
|
||||
const bool converting = (get_user_status(dongle().administrator()) & 4) != 0;
|
||||
if (converting)
|
||||
const TString& autstr = cache().get(LF_USER, dongle().administrator(), USR_AUTSTR);
|
||||
if (autstr == "CONVERTING")
|
||||
{
|
||||
TString msg; msg << TR("E' in corso una conversione archivi") << ":\n";
|
||||
if (utente == dongle().administrator())
|
||||
@ -1162,7 +1104,13 @@ bool TMenu_application::check_user()
|
||||
}
|
||||
|
||||
if (ok)
|
||||
set_user_status(utente, 3); // Esistente e connesso (1 | 2 = 3)
|
||||
{
|
||||
dongle().logout();
|
||||
user() = utente;
|
||||
ok = get_serial_number() >= 0;
|
||||
if (!ok)
|
||||
error_box(TR("Probabilmente è stato superato il numero massimo di utenti"));
|
||||
}
|
||||
|
||||
if (ok)
|
||||
{
|
||||
@ -1336,7 +1284,8 @@ bool TMenu_application::test_programs()
|
||||
//mette il flag di installing
|
||||
set_installing_flag();
|
||||
//lancia setup in modalita' aggiornamento client e si suicida! (banzai!!)
|
||||
TExternal_app app("setup/setup.exe -uc");
|
||||
|
||||
TExternal_app app("setup\\setup.exe -uc");
|
||||
app.run(true);
|
||||
|
||||
//se lancia un'installazione->esce!!!
|
||||
@ -1391,8 +1340,17 @@ bool TMenu_application::user_create()
|
||||
|
||||
void TMenu_application::deconnect_user()
|
||||
{
|
||||
if (get_user_status(user()) & 2) // Se e' connesso
|
||||
set_user_status(user(), 1); // Sconnettilo
|
||||
if (prefix_valid())
|
||||
{
|
||||
TLocalisamfile users(LF_USER);
|
||||
users.put("USERNAME", user());
|
||||
const int err = users.read(_isequal, _lock);
|
||||
if (err == NOERR)
|
||||
{
|
||||
users.zero("CONNECTED");
|
||||
users.rewrite();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool TMenu_application::destroy()
|
||||
|
Loading…
x
Reference in New Issue
Block a user