Corretta la gestione degli utenti e delle connessioni per la versione Terminal Server

git-svn-id: svn://10.65.10.50/trunk@11926 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2004-03-31 13:02:54 +00:00
parent f5b07fd56f
commit c66bc47a3b
2 changed files with 8 additions and 65 deletions

View File

@ -1,12 +1,6 @@
#define __CFILES_C /* fv */ #define __CFILES_C /* fv */
#include <xvt.h> #include <xvt.h>
#ifdef LINUX
extern const char * _c_user;
extern BOOLEAN _is_admin;
#endif
#include "cfiles.h" #include "cfiles.h"
int dirfl[2] = {0, 0}, recfl[2] = {0, 0} ; int dirfl[2] = {0, 0}, recfl[2] = {0, 0} ;
@ -390,30 +384,13 @@ HIDDEN BOOLEAN CGetFirmDir()
if (good) if (good)
{ {
int len = 0; int len = 0;
#ifdef LINUX
good = FALSE; len = xvt_sys_get_profile_string(prawin, "Main", "Study", "", __ptprf, sizeof(__ptprf));
if (!_is_admin) good = len > 0;
{
char varname[80];
sprintf(varname, "Study[%s]", _c_user);
len = xvt_sys_get_profile_string(prawin, "Main", varname, "", __ptprf, sizeof(__ptprf));
good = len > 0;
}
if (!good)
{
#endif
len = xvt_sys_get_profile_string(prawin, "Main", "Study", "", __ptprf, sizeof(__ptprf));
good = len > 0;
#ifdef LINUX
}
#endif
if (good) if (good)
{ {
char firm[8]; char firm[8];
long ditta; long ditta;
#ifdef LINUX
char path[_MAX_PATH], user[80];
#endif
if (__ptprf[len-1] != '\\' && __ptprf[len-1] != '/') if (__ptprf[len-1] != '\\' && __ptprf[len-1] != '/')
{ {
@ -421,14 +398,7 @@ HIDDEN BOOLEAN CGetFirmDir()
__ptprf[len+1] = '\0'; __ptprf[len+1] = '\0';
} }
#ifdef LINUX xvt_sys_get_profile_string(prawin, "Main", "Firm", "com", firm, sizeof(firm));
strcpy(user, _c_user),
xvt_str_make_lower(user);
sprintf(path, "%sconfig%c%s.ini", __ptprf, DIRSEP, user);
len = xvt_sys_get_profile_string(path, "Main", "Firm", "", firm, sizeof(firm));
if (len == 0)
#endif
xvt_sys_get_profile_string(prawin, "Main", "Firm", "com", firm, sizeof(firm));
ditta = atol(firm); ditta = atol(firm);
if (ditta > 0) sprintf(firm, "%05lda", ditta); if (ditta > 0) sprintf(firm, "%05lda", ditta);
xvt_fsys_build_pathname(cprefix, NULL, __ptprf, firm, NULL, NULL); xvt_fsys_build_pathname(cprefix, NULL, __ptprf, firm, NULL, NULL);
@ -441,27 +411,9 @@ HIDDEN BOOLEAN CGetFirmDir()
BOOLEAN CPutFirmDir(const char* pref) BOOLEAN CPutFirmDir(const char* pref)
{ {
const char* prawin = CGetCampoIni(); const char* prawin = CGetCampoIni();
#ifdef LINUX const BOOLEAN good = xvt_sys_set_profile_string(prawin, "Main", "Firm", pref);
char path[_MAX_PATH], user[80];
strcpy(user, _c_user), xvt_sys_set_profile_string(prawin, "Main", "Study", __ptprf);
xvt_str_make_lower(user);
sprintf(path, "%sconfig%c%s.ini", __ptprf, DIRSEP, user);
BOOLEAN good = xvt_sys_set_profile_string(path, "Main", "Firm", pref);
#else
BOOLEAN good = xvt_sys_set_profile_string(prawin, "Main", "Firm", pref);
#endif
#ifdef LINUX
if (!_is_admin)
{
char varname[80];
sprintf(varname, "Study[%s]", _c_user);
xvt_sys_set_profile_string(prawin, "Main", varname, __ptprf);
}
else
#endif
xvt_sys_set_profile_string(prawin, "Main", "Study", __ptprf);
return good; return good;
} }

View File

@ -18,11 +18,6 @@
#include <regexp.h> #include <regexp.h>
#include <utility.h> #include <utility.h>
#ifdef LINUX
const char * _c_user = NULL;
bool _is_admin = FALSE;
#endif
// @doc EXTERNAL // @doc EXTERNAL
// @func Ritorna il nome dell'utente attuale // @func Ritorna il nome dell'utente attuale
@ -30,12 +25,8 @@
// @rdesc Ritorno il nome dell'utente attuale // @rdesc Ritorno il nome dell'utente attuale
TString& user() TString& user()
{ {
static TString16 _user; static TString8 _user;
#ifdef LINUX
if (_c_user == NULL)
_c_user = (const char *) _user;
_is_admin = (_user == ::dongle().administrator());
#endif
return _user; return _user;
} }