added: forum

added: mount params can have arguments (in parentheses)
added: mount params: withheader, withinfo, restrictcreatethread, only_root_can_remove,
       can_use_emacs_on(level), can_use_mkdir_on(level), 
added: table Item has 'subject' column now
removed: column 'subject' from table Content




git-svn-id: svn://ttmath.org/publicrep/cmslu/trunk@505 e52654a7-88a9-db11-a3e9-0013d4bc506e
This commit is contained in:
2009-06-05 20:29:06 +00:00
parent 3d001e7458
commit 1eb42446f8
38 changed files with 1357 additions and 369 deletions

View File

@@ -25,7 +25,7 @@ static size_t priv_user_reqid = 0;
void priv_user_tab_init()
void priv_user_tab_init(Item & item)
{
priv_user_reqid = request.id;
priv_user_table.clear();
@@ -33,7 +33,7 @@ void priv_user_tab_init()
if( !request.session->puser )
{
// not logged
priv_user_table.push_back(request.item.user_id);
priv_user_table.push_back(item.user_id);
}
else
if( request.session->puser->super_user )
@@ -48,11 +48,20 @@ void priv_user_tab_init()
else
{
// others
priv_user_table.push_back(request.item.user_id);
priv_user_table.push_back(item.user_id);
}
}
void priv_user_tab_init()
{
if( request.is_item )
priv_user_tab_init(request.item);
else
priv_user_tab_init(*request.dir_table.back());
}
void priv_user_tab(Info & i)
{
if( priv_user_reqid != request.id )
@@ -95,8 +104,16 @@ void priv_user_tab_isdefault(Info & i)
{
long uid = priv_user_table[priv_user_index];
if( uid == request.item.user_id )
i.result = true;
if( request.is_item )
{
if( uid == request.item.user_id )
i.result = true;
}
else
{
if( uid == request.dir_table.back()->user_id )
i.result = true;
}
}
}
@@ -113,7 +130,7 @@ static size_t priv_group_reqid = 0;
void priv_group_tab_init()
void priv_group_tab_init(Item & item)
{
priv_group_reqid = request.id;
priv_group_table.clear();
@@ -121,7 +138,7 @@ void priv_group_tab_init()
if( !request.session->puser )
{
// not logged
priv_group_table.push_back(request.item.group_id);
priv_group_table.push_back(item.group_id);
}
else
if( request.session->puser->super_user )
@@ -134,7 +151,7 @@ void priv_group_tab_init()
priv_group_table.push_back(-1);
}
else
if( request.session->puser->id == request.item.user_id )
if( request.session->puser->id == item.user_id )
{
bool was_current_group = false;
// owner of the item -- is allowed to change only to a group in which he belongs to
@@ -142,13 +159,13 @@ void priv_group_tab_init()
{
priv_group_table.push_back( request.session->puser->groups[i] );
if( request.item.group_id == request.session->puser->groups[i] )
if( item.group_id == request.session->puser->groups[i] )
was_current_group = true;
}
// we're showing the item.group_id if it's different
if( !was_current_group )
priv_group_table.push_back(request.item.group_id);
priv_group_table.push_back(item.group_id);
// switching to -1 is allowed too
priv_group_table.push_back(-1);
@@ -156,11 +173,20 @@ void priv_group_tab_init()
else
{
// not the owner and not a super user -- the same as not logged
priv_group_table.push_back(request.item.group_id);
priv_group_table.push_back(item.group_id);
}
}
void priv_group_tab_init()
{
if( request.is_item )
priv_group_tab_init(request.item);
else
priv_group_tab_init(*request.dir_table.back());
}
void priv_group_tab(Info & i)
{
if( priv_group_reqid != request.id )
@@ -203,12 +229,28 @@ void priv_group_tab_isdefault(Info & i)
{
long gid = priv_group_table[priv_group_index];
if( gid == request.item.group_id )
i.result = true;
if( request.is_item )
{
if( gid == request.item.group_id )
i.result = true;
}
else
{
if( gid == request.dir_table.back()->group_id )
i.result = true;
}
}
}
void priv_privileges(Info & i)
{
if( request.is_item )
i.out << std::setbase(8) << request.item.privileges << std::setbase(10);
else
i.out << std::setbase(8) << request.dir_table.back()->privileges << std::setbase(10);
}