- updated to the new pikotools api (child spaces were removed)
some plugins need to be fixed yet: ticket, gallery, group, menu - added current user to default models as "user" - renamed in User: super_user -> is_super_user, env -> admin_env, pass_hash_salted -> is_pass_hash_salted - now Users class has a WinixModel as a base class some plugin calls have to be fixed yet - added UserWrapper model with a pointer to User class - removed from ItemContent: methods for accessing 'meta' and 'admin_meta', now ezc can iterate through Space classes - fixed in env winix function: if there is "changeuser" parameter then we should only switch the user (not save anything)
This commit is contained in:
@@ -46,7 +46,6 @@ namespace Fun
|
||||
Env::Env()
|
||||
{
|
||||
fun.url = L"env";
|
||||
puser = 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -59,7 +58,7 @@ bool Env::HasAccess()
|
||||
{
|
||||
// show/change admin environment variables for a user
|
||||
|
||||
if( !cur->session->puser->super_user )
|
||||
if( !cur->session->puser->is_super_user )
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -78,16 +77,16 @@ bool Env::EditAdminEnv(const std::wstring & env_str, bool use_ses_log)
|
||||
{
|
||||
if( Parse(env_str) )
|
||||
{
|
||||
puser->aenv = space;
|
||||
user_wrapper.user->admin_env = space;
|
||||
|
||||
if( puser->update() )
|
||||
if( user_wrapper.user->update() )
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
log << log1 << "Evn: a database problem with changing admin environment variables for user: "
|
||||
<< puser->name << ", id: " << puser->id << logend;
|
||||
<< user_wrapper.user->login << ", id: " << user_wrapper.user->id << logend;
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -106,16 +105,16 @@ bool Env::EditEnv(const std::wstring & env_str, bool use_ses_log)
|
||||
{
|
||||
if( Parse(env_str) )
|
||||
{
|
||||
puser->env = space;
|
||||
user_wrapper.user->env = space;
|
||||
|
||||
if( puser->update() )
|
||||
if( user_wrapper.user->update() )
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
log << log1 << "Evn: a database problem with changing admin environment variables for user: "
|
||||
<< puser->name << ", id: " << puser->id << logend;
|
||||
<< user_wrapper.user->login << ", id: " << user_wrapper.user->id << logend;
|
||||
}
|
||||
}
|
||||
else
|
||||
@@ -138,61 +137,89 @@ void Env::SaveEnv()
|
||||
|
||||
if( cur->request->IsParam(L"a") )
|
||||
{
|
||||
if( cur->session->puser->super_user )
|
||||
if( cur->session->puser->is_super_user )
|
||||
{
|
||||
status = EditAdminEnv(env_str, true);
|
||||
|
||||
if( status )
|
||||
{
|
||||
slog << loginfo << T(L"env_admin_changed_successfully") << logend;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
status = EditEnv(env_str, true);
|
||||
}
|
||||
|
||||
if( status )
|
||||
system->RedirectToLastItem();
|
||||
if( status )
|
||||
{
|
||||
slog << loginfo << T(L"env_changed_successfully") << logend;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void Env::RegisterModels()
|
||||
{
|
||||
cur->request->models.Add(L"users", system->users);
|
||||
cur->request->models.Add(L"env_user", user_wrapper);
|
||||
}
|
||||
|
||||
|
||||
|
||||
void Env::MakePost()
|
||||
{
|
||||
puser = nullptr;
|
||||
user_wrapper.user = nullptr;
|
||||
user_wrapper.set_connector(model_connector);
|
||||
|
||||
if( cur->session->puser )
|
||||
{
|
||||
puser = cur->session->puser;
|
||||
user_wrapper.user = cur->session->puser;
|
||||
|
||||
if( cur->request->IsPostVar(L"changeuser") )
|
||||
if( cur->session->puser->is_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);
|
||||
long id = Tol(cur->request->PostVar(L"userid"));
|
||||
user_wrapper.user = system->users.GetUser(id);
|
||||
|
||||
if( puser )
|
||||
{
|
||||
log << log2 << "Env: changing user to: " << puser->name << ", id: " << puser->id << logend;
|
||||
}
|
||||
if( user_wrapper.user->id != cur->session->puser->id )
|
||||
{
|
||||
log << log2 << "Env: changing user to: " << user_wrapper.user->login << ", id: " << user_wrapper.user->id << logend;
|
||||
}
|
||||
}
|
||||
|
||||
if( puser )
|
||||
if( !cur->request->IsPostVar(L"changeuser") )
|
||||
{
|
||||
/*
|
||||
* this puser should be set in a new struct (based on Model)
|
||||
* and put to templates
|
||||
*
|
||||
*/
|
||||
|
||||
SaveEnv();
|
||||
}
|
||||
else
|
||||
{
|
||||
cur->request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
if( user_wrapper.user )
|
||||
{
|
||||
SaveEnv();
|
||||
}
|
||||
else
|
||||
{
|
||||
cur->request->status = WINIX_ERR_PERMISSION_DENIED;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
RegisterModels();
|
||||
}
|
||||
|
||||
|
||||
void Env::MakeGet()
|
||||
{
|
||||
user_wrapper.user = cur->session->puser;
|
||||
user_wrapper.set_connector(model_connector);
|
||||
|
||||
RegisterModels();
|
||||
}
|
||||
|
||||
|
||||
void Env::Clear()
|
||||
{
|
||||
user_wrapper.user = nullptr;
|
||||
}
|
||||
|
||||
|
||||
|
||||
} // namespace
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user