@ -47,7 +47,6 @@ Env::Env()
{
fun . url = L " env " ;
puser = 0 ;
req_id = 0 ;
}
@ -64,9 +63,6 @@ bool Env::HasAccess()
return false ;
}
if ( ! GetUser ( ) )
return false ;
return true ;
}
@ -77,27 +73,24 @@ bool Env::Parse(const std::wstring & env_str)
space . clear ( ) ;
conf_parser . SetSpace ( space ) ;
return ( conf_parser . ParseSpace ( env_str ) = = PT : : SpaceParser : : ok ) ;
return ( conf_parser . ParseSpace ( env_str ) = = PT : : SpaceParser : : ok ) ;
}
bool Env : : EditAdminEnv ( long user_id , const std : : wstring & env_str , bool use_ses_log )
bool Env : : EditAdminEnv ( const std : : wstring & env_str , bool use_ses_log )
{
if ( Parse ( env_str ) )
{
if ( db - > ChangeUserAdminEnv ( user_id , space ) = = WINIX_ERR_OK )
{
User * puser = system - > users . GetUser ( user_id ) ;
if ( puser )
puser - > aenv = space ;
puser - > aenv = space ;
if ( puser - > update ( ) )
{
return true ;
}
else
{
log < < log1 < < " Evn: a database problem with changing environment variables for user: "
< < cur- > session - > puser- > name < < " , id: " < < cur - > session - > puser - > id < < logend ;
log < < log1 < < " Evn: a database problem with changing admin environment variables for user: "
< < puser- > name < < " , id: " < < puser - > id < < logend ;
}
}
else
@ -112,23 +105,20 @@ return false;
}
bool Env : : EditEnv ( long user_id , const std : : wstring & env_str , bool use_ses_log )
bool Env : : EditEnv ( const std : : wstring & env_str , bool use_ses_log )
{
if ( Parse ( env_str ) )
{
if ( db - > ChangeUserEnv ( user_id , space ) = = WINIX_ERR_OK )
{
User * puser = system - > users . GetUser ( user_id ) ;
if ( puser )
puser - > env = space ;
puser - > env = space ;
if ( puser - > update ( ) )
{
return true ;
}
else
{
log < < log1 < < " Evn: a database problem with changing admin environment variables for user: "
< < cur- > session - > puser- > name < < " , id: " < < cur - > session - > puser - > id < < logend ;
< < puser- > name < < " , id: " < < puser - > id < < logend ;
}
}
else
@ -146,67 +136,62 @@ return false;
void Env : : SaveEnv ( )
{
if ( GetUser ( ) )
{
const std : : wstring & env_str = cur - > request - > PostVar ( L " envvar " ) ;
long user_id = GetUser ( ) - > id ;
bool status = false ;
if ( cur - > request - > IsParam ( L " a " ) )
{
if ( cur - > session - > puser - > super_user )
status = EditAdminEnv ( user_id , env_str , true ) ;
}
else
{
status = EditEnv ( user_id , env_str , true ) ;
}
const std : : wstring & env_str = cur - > request - > PostVar ( L " envvar " ) ;
long user_id = puser - > id ;
bool status = false ;
if ( status )
system - > RedirectToLastItem ( ) ;
if ( cur - > request - > IsParam ( L " a " ) )
{
if ( cur - > session - > puser - > super_user )
status = EditAdminEnv ( env_str , true ) ;
}
else
{
status = EditEnv ( env_str , true ) ;
}
if ( status )
system - > RedirectToLastItem ( ) ;
}
User * Env : : GetUser ( )
void Env : : MakePost ( )
{
if ( cur - > request - > id ! = req_id )
puser = nullptr ;
if ( cur - > session - > puser )
{
req_id = cur - > request - > id ;
puser = 0 ;
puser = cur - > session - > puser ;
if ( cur - > session- > puser )
if ( cur - > request- > IsPostVar ( L " changeuser " ) )
{
if ( cur - > session - > puser - > super_user & & cur - > request - > IsPostVar ( L " userid " ) )
// show environments variables for the specified user
if ( puser - > super_user & & cur - > request - > IsPostVar ( L " userid " ) )
{
long id = Tol ( cur - > request - > PostVar ( L " userid " ) ) ;
puser = system - > users . GetUser ( id ) ;
}
else
{
puser = cur - > session - > puser ;
if ( puser )
{
log < < log2 < < " Env: changing user to: " < < puser - > name < < " , id: " < < puser - > id < < logend ;
}
}
}
}
return puser ;
}
void Env : : MakePost ( )
{
if ( cur - > session - > puser )
{
if ( cur - > request - > IsPostVar ( L " changeuser " ) )
if ( puser )
{
// show environments variables for the specified user
if ( GetUser ( ) )
log < < log2 < < " Env: changing user to: " < < GetUser ( ) - > name < < " , id: " < < GetUser ( ) - > id < < logend ;
/*
* this puser should be set in a new struct ( based on Model )
* and put to templates
*
*/
SaveEnv ( ) ;
}
else
{
// save environment variables
SaveEnv ( ) ;
cur - > request - > status = WINIX_ERR_PERMISSION_DENIED ;
}
}
}