ItemContent::user_name(EzcEnv & env) changed to ItemContent::user(morm::ModelWrapper ** model_wrapper) and we return a User class

ItemContent::group_name(EzcEnv & env) changed to ItemContent::group(morm::ModelWrapper ** model_wrapper) and we return a Group class
added ItemContent::display_user_name(EzcEnv & env)
some functions in templates/item.cpp moved to Item
This commit is contained in:
2021-06-19 23:48:12 +02:00
parent d8c1a81bcb
commit e7c7324058
20 changed files with 318 additions and 88 deletions

View File

@@ -597,14 +597,17 @@ bool Item::is_current_dir() const
}
void Item::url_is(EzcEnv & env)
{
env.res = (url == env.par);
}
//bool Item::has_read_accessxx() const
//{
//
//}
} // namespace Winix

View File

@@ -88,8 +88,8 @@ void ItemContent::fields()
field(L"print_content", &ItemContent::print_content);
field(L"has_static_file", &ItemContent::has_static_file);
field(L"privileges_octal", &ItemContent::privileges_octal);
field(L"user_name", &ItemContent::user_name);
field(L"group_name", &ItemContent::group_name);
field(L"user", &ItemContent::user);
field(L"group", &ItemContent::group);
field(L"type_is", &ItemContent::type_is);
field(L"is_empty", &ItemContent::is_empty);
@@ -99,6 +99,7 @@ void ItemContent::fields()
field(L"file_type_is_sound", &ItemContent::file_type_is_sound);
field(L"has_thumb", &ItemContent::has_thumb);
field(L"display_user_name", &ItemContent::display_user_name);
@@ -432,19 +433,23 @@ void ItemContent::privileges_octal(EzcEnv & env)
}
void ItemContent::user_name(EzcEnv & env)
void ItemContent::user(morm::ModelWrapper ** model_wrapper)
{
Users * users = get_users();
if( users )
{
User * puser = users->GetUser(user_id);
TemplatesFunctions::print_user_name(env, puser, guest_name);
if( puser )
{
*model_wrapper = new morm::ModelWrapperModel(puser);
}
}
}
void ItemContent::group_name(EzcEnv & env)
void ItemContent::group(morm::ModelWrapper ** model_wrapper)
{
Groups * groups = get_groups();
@@ -453,9 +458,9 @@ void ItemContent::group_name(EzcEnv & env)
Group * pgroup = groups->GetGroup(group_id);
if( pgroup )
env.out << pgroup->name;
else
env.out << group_id;
{
*model_wrapper = new morm::ModelWrapperModel(pgroup);
}
}
}
@@ -525,6 +530,50 @@ void ItemContent::has_thumb(EzcEnv & env)
}
void ItemContent::display_user_name(EzcEnv & env)
{
Locale * locale = get_locale();
if( user_id != -1 )
{
Users * users = get_users();
if( users )
{
User * user = users->GetUser(user_id);
if( user )
{
user->display_name(env);
}
else
{
if( locale )
locale->Get(L"not_existing_user");
else
env.out << "not existing user";
}
}
}
else
{
// IMPROVEME these should be moved to a better place
env.out << "~";
if( !guest_name.empty() && !IsWhite(guest_name) )
{
env.out << guest_name;
}
else
{
if( locale )
env.out << locale->Get(L"display_guest_name");
else
env.out << "guest";
}
}
}
} // namespace Winix

View File

@@ -282,8 +282,8 @@ protected:
void print_content(EzcEnv & env);
void has_static_file(EzcEnv & env);
void privileges_octal(EzcEnv & env);
void user_name(EzcEnv & env);
void group_name(EzcEnv & env);
void user(morm::ModelWrapper ** model_wrapper);
void group(morm::ModelWrapper ** model_wrapper);
void type_is(EzcEnv & env);
void is_empty(EzcEnv & env);
void file_type_is_none(EzcEnv & env);
@@ -291,6 +291,7 @@ protected:
void file_type_is_video(EzcEnv & env);
void file_type_is_sound(EzcEnv & env);
void has_thumb(EzcEnv & env);
void display_user_name(EzcEnv & env);
MORM_MEMBER_FIELD(ItemContent)

View File

@@ -34,6 +34,7 @@
#include "user.h"
#include "core/misc.h"
#include "templates/templates.h"
namespace Winix
@@ -51,23 +52,23 @@ User::User()
void User::fields()
{
field(L"id", id, morm::FT::no_insertable | morm::FT::no_updatable | morm::FT::primary_key);
field(L"login", name); // IMPROVEME set the same name, either 'login' or 'name'
field(L"super_user", super_user);
field(L"id", id, morm::FT::no_insertable | morm::FT::no_updatable | morm::FT::primary_key);
field(L"login", name); // IMPROVEME set the same name, either 'login' or 'name'
field(L"super_user", super_user); // IMPROVEME rename to is_super_user
field(L"has_pass", has_pass);
field(L"pass_type", pass_type);
field(L"password", password);
field(L"pass_encrypted", pass_encrypted, morm::FT::binary);
field(L"pass_hash_salted", pass_hash_salted);
field(L"has_pass", has_pass);
field(L"pass_type", pass_type);
field(L"password", L"", password);
field(L"pass_encrypted", L"", pass_encrypted, morm::FT::binary);
field(L"pass_hash_salted", pass_hash_salted); // IMPROVEME rename to pass_is_hash_salted or is_pass_hash_salted
field(L"email", email);
field(L"notify", notify);
field(L"env", env);
field(L"aenv", aenv);
field(L"status", status);
field(L"locale_id", locale_id);
field(L"time_zone_id", time_zone_id);
field(L"email", email);
field(L"notify", notify);
field(L"env", env);
field(L"aenv", aenv); // IMPROVEME rename to admin_env
field(L"status", status);
field(L"locale_id", locale_id);
field(L"time_zone_id", time_zone_id);
}
@@ -177,6 +178,15 @@ bool User::do_migration_to_1()
void User::display_name(EzcEnv & env)
{
std::wstring * dname = aenv.get_wstr(L"display_name");
if( dname && !IsWhite(*dname, true) )
env.out << *dname;
else
env.out << name;
}

View File

@@ -40,6 +40,7 @@
#include "model.h"
#include "space/space.h"
#include "date/date.h"
#include "templates/misc.h"
namespace Winix
@@ -145,6 +146,8 @@ public:
bool do_migration(int & current_table_version);
void display_name(EzcEnv & env);
private:

View File

@@ -170,6 +170,47 @@ User * WinixModel::get_current_user()
}
Locale * WinixModel::get_locale()
{
WinixModelConnector * connector = get_winix_model_connector();
if( connector )
{
return connector->get_winix_locale();
}
return nullptr;
}
SessionManager * WinixModel::get_session_manager()
{
WinixModelConnector * connector = get_winix_model_connector();
if( connector )
{
return connector->get_winix_session_manager();
}
return nullptr;
}
TimeZones * WinixModel::get_time_zones()
{
WinixModelConnector * connector = get_winix_model_connector();
if( connector )
{
return connector->get_winix_time_zones();
}
return nullptr;
}
const Config * WinixModel::get_config() const
{
@@ -303,6 +344,50 @@ const User * WinixModel::get_current_user() const
const Locale * WinixModel::get_locale() const
{
const WinixModelConnector * connector = get_winix_model_connector();
if( connector )
{
return connector->get_winix_locale();
}
return nullptr;
}
const SessionManager * WinixModel::get_session_manager() const
{
const WinixModelConnector * connector = get_winix_model_connector();
if( connector )
{
return connector->get_winix_session_manager();
}
return nullptr;
}
const TimeZones * WinixModel::get_time_zones() const
{
const WinixModelConnector * connector = get_winix_model_connector();
if( connector )
{
return connector->get_winix_time_zones();
}
return nullptr;
}
WinixModelConnector * WinixModel::get_winix_model_connector()
{
if( model_connector )

View File

@@ -52,6 +52,9 @@ class Groups;
class SLog;
class Session;
class User;
class Locale;
class SessionManager;
class TimeZones;
@@ -69,6 +72,9 @@ public:
SLog * get_session_logger(); // FIXME always return null at the moment, should be set when a new request is created and clear at the end of a request
Session * get_session();
User * get_current_user();
Locale * get_locale();
SessionManager * get_session_manager();
TimeZones * get_time_zones();
const Config * get_config() const;
const Request * get_request() const;
@@ -80,6 +86,11 @@ public:
const SLog * get_session_logger() const; // FIXME always return null at the moment, should be set when a new request is created and clear at the end of a request
const Session * get_session() const;
const User * get_current_user() const;
const Locale * get_locale() const;
const SessionManager * get_session_manager() const;
const TimeZones * get_time_zones() const;
protected:

View File

@@ -50,6 +50,9 @@ WinixModelConnector::WinixModelConnector()
groups = nullptr;
slog = nullptr;
session = nullptr;
locale = nullptr;
session_manager = nullptr;
time_zones = nullptr;
}
@@ -107,6 +110,31 @@ Session * WinixModelConnector::get_winix_session()
}
Locale * WinixModelConnector::get_winix_locale()
{
return locale;
}
SessionManager * WinixModelConnector::get_winix_session_manager()
{
return session_manager;
}
TimeZones * WinixModelConnector::get_winix_time_zones()
{
return time_zones;
}
const Config * WinixModelConnector::get_winix_config() const
{
return config;
@@ -161,6 +189,24 @@ const Session * WinixModelConnector::get_winix_session() const
}
const Locale * WinixModelConnector::get_winix_locale() const
{
return locale;
}
const SessionManager * WinixModelConnector::get_winix_session_manager() const
{
return session_manager;
}
const TimeZones * WinixModelConnector::get_winix_time_zones() const
{
return time_zones;
}
void WinixModelConnector::set_winix_config(Config * config)
{
@@ -216,5 +262,26 @@ void WinixModelConnector::set_winix_session(Session * session)
}
void WinixModelConnector::set_winix_locale(Locale * locale)
{
this->locale = locale;
}
void WinixModelConnector::set_winix_session_manager(SessionManager * session_manager)
{
this->session_manager = session_manager;
}
void WinixModelConnector::set_winix_time_zones(TimeZones * time_zones)
{
this->time_zones = time_zones;
}
}

View File

@@ -49,6 +49,9 @@ class Users;
class Groups;
class SLog;
class Session;
class Locale;
class SessionManager;
class TimeZones;
class WinixModelConnector : public morm::ModelConnector
@@ -66,6 +69,9 @@ public:
Groups * get_winix_groups();
SLog * get_winix_session_logger();
Session * get_winix_session();
Locale * get_winix_locale();
SessionManager * get_winix_session_manager();
TimeZones * get_winix_time_zones();
const Config * get_winix_config() const;
const Request * get_winix_request() const;
@@ -76,6 +82,9 @@ public:
const Groups * get_winix_groups() const;
const SLog * get_winix_session_logger() const;
const Session * get_winix_session() const;
const Locale * get_winix_locale() const;
const SessionManager * get_winix_session_manager() const;
const TimeZones * get_winix_time_zones() const;
void set_winix_config(Config * config);
void set_winix_request(Request * request);
@@ -86,6 +95,9 @@ public:
void set_winix_groups(Groups * groups);
void set_winix_session_logger(SLog * slog);
void set_winix_session(Session * session);
void set_winix_locale(Locale * locale);
void set_winix_session_manager(SessionManager * session_manager);
void set_winix_time_zones(TimeZones * time_zones);
protected:
@@ -99,6 +111,10 @@ protected:
Groups * groups;
SLog * slog;
Session * session;
Locale * locale;
SessionManager * session_manager;
TimeZones * time_zones;
};