struct Item has modification_user_id (long) now

this is the id of a user who has modified the item recently
this is only for information, persmissions don't use it


git-svn-id: svn://ttmath.org/publicrep/winix/trunk@614 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
2010-06-22 21:09:37 +00:00
parent 56075857f2
commit 759135fd7d
20 changed files with 110 additions and 53 deletions

View File

@@ -455,9 +455,10 @@ Error Db::AddItemIntoItem(Item & item)
{
AssertConnection();
std::ostringstream query;
query << "insert into core.item (user_id, group_id, privileges, date_creation, date_modification, type, "
query << "insert into core.item (user_id, modification_user_id, group_id, privileges, date_creation, date_modification, type, "
"parent_id, content_id, auth, auth_path, default_item, subject, guest_name, url) values (";
query << '\'' << item.user_id << "', ";
query << '\'' << item.modification_user_id << "', ";
query << '\'' << item.group_id << "', ";
query << '\'' << item.privileges << "', ";
query << '\'' << ConvertTime(item.date_creation) << "', ";
@@ -562,7 +563,7 @@ Error Db::EditItemInItem(Item & item, bool with_url)
{
AssertConnection();
std::ostringstream query;
query << "update core.item set (user_id, group_id, privileges, date_creation, date_modification, type, "
query << "update core.item set (user_id, modification_user_id, group_id, privileges, date_creation, date_modification, type, "
"default_item, parent_id, subject, guest_name, auth, auth_path";
if( with_url )
@@ -570,6 +571,7 @@ Error Db::EditItemInItem(Item & item, bool with_url)
query << ") = (";
query << '\'' << item.user_id << "', ";
query << '\'' << item.modification_user_id << "', ";
query << '\'' << item.group_id << "', ";
query << '\'' << item.privileges << "', ";
query << '\'' << ConvertTime(item.date_creation) << "', ";
@@ -795,7 +797,7 @@ PGresult * Db::GetItemsQuery(const ItemQuery & iq)
query << "select item.id";
if( iq.sel_parent_id ) query << " ,parent_id";
if( iq.sel_user_id ) query << " ,user_id";
if( iq.sel_user_id ) query << " ,user_id, modification_user_id";
if( iq.sel_group_id ) query << " ,group_id";
if( iq.sel_guest_name) query << " ,guest_name";
if( iq.sel_privileges ) query << " ,privileges";
@@ -1092,7 +1094,7 @@ bool result = false;
AssertConnection();
std::ostringstream query;
query << "select user_id, group_id, privileges, guest_name from core.item"
query << "select user_id, modification_user_id, group_id, privileges, guest_name from core.item"
<< " where item.id='" << id << "';";
r = AssertQuery( query.str() );
@@ -1129,8 +1131,9 @@ Error Db::EditPrivById(Item & item, long id)
{
AssertConnection();
std::ostringstream query;
query << "update core.item set (user_id, group_id, privileges, guest_name) = (";
query << "update core.item set (user_id, modification_user_id, group_id, privileges, guest_name) = (";
query << '\'' << item.user_id << "', ";
query << '\'' << item.modification_user_id << "', ";
query << '\'' << item.group_id << "', ";
query << '\'' << item.privileges << "', ";
query << '\'' << Escape(item.guest_name) << "' ";

View File

@@ -56,7 +56,7 @@ public:
{
// id is selected always
bool sel_parent_id; // parent_id
bool sel_user_id; // user_id
bool sel_user_id; // user_id, modification_user_id
bool sel_group_id; // group_id
bool sel_guest_name; // guest_name
bool sel_privileges; // privileges
@@ -223,7 +223,7 @@ protected:
struct ItemColumns
{
int id, user_id, group_id, privileges, date_creation, date_modification, url, type, parent_id,
content_id, default_item, subject, content, content_type, guest_name, auth, auth_path;
content_id, default_item, subject, content, content_type, guest_name, auth, auth_path, modification_user_id;
void SetColumns(PGresult * r);
void SetItem(PGresult * r, long row, Item & item);

View File

@@ -31,6 +31,7 @@ void Db::ItemColumns::SetColumns(PGresult * r)
guest_name = PQfnumber(r, "guest_name");
auth = PQfnumber(r, "auth");
auth_path = PQfnumber(r, "auth_path");
modification_user_id = PQfnumber(r, "modification_user_id");
}
@@ -54,6 +55,7 @@ void Db::ItemColumns::SetItem(PGresult * r, long row, Item & item)
if( guest_name != -1 ) item.guest_name = Db::AssertValue(r, row, guest_name);
if( auth != -1 ) item.auth = static_cast<Item::Auth>( atoi(Db::AssertValue(r, row, auth)) );
if( auth_path != -1 ) item.auth_path = Db::AssertValue(r, row, auth_path);
if( modification_user_id != -1 ) item.modification_user_id = atol( Db::AssertValue(r, row, modification_user_id) );
}

View File

@@ -25,6 +25,8 @@ long user_id;
long group_id;
std::string guest_name; // used as a user name when user_id is equal -1
long modification_user_id; // who has modified the item last (not taken into account when checking permissions)
int privileges;
tm date_creation;
@@ -109,7 +111,8 @@ void Clear()
user_id = -1;
group_id = -1;
privileges = 0;
modification_user_id = -1;
guest_name.clear();
subject.clear();