some ezc functions from templates/item.cpp moved to Item and ItemContent
methods HasAccess() HasReadAccess() and similar moved from System to Item and ItemContent
This commit is contained in:
@@ -606,69 +606,31 @@ return true;
|
||||
}
|
||||
|
||||
|
||||
// private
|
||||
bool System::HasAccess(const Item & item, int mask)
|
||||
{
|
||||
if( !cur->session )
|
||||
// session must be set
|
||||
return false;
|
||||
|
||||
if( cur->session->puser && cur->session->puser->super_user )
|
||||
// super user is allowed everything
|
||||
return true;
|
||||
|
||||
if( cur->session->puser && item.item_content.user_id != -1 && cur->session->puser->id == item.item_content.user_id )
|
||||
{
|
||||
// the owner
|
||||
return ((item.item_content.privileges >> 9) & mask) == mask;
|
||||
}
|
||||
|
||||
if( cur->session->puser && item.item_content.group_id != -1 && cur->session->puser->IsMemberOf(item.item_content.group_id) )
|
||||
{
|
||||
// group
|
||||
return ((item.item_content.privileges >> 6) & mask) == mask;
|
||||
}
|
||||
|
||||
if( cur->session->puser )
|
||||
{
|
||||
// others -- others logged people
|
||||
return ((item.item_content.privileges >> 3) & mask) == mask;
|
||||
}
|
||||
|
||||
// guests -- not logged people
|
||||
|
||||
return (item.item_content.privileges & mask) == mask;
|
||||
}
|
||||
|
||||
|
||||
// DEPRACATED
|
||||
bool System::HasReadAccess(const Item & item)
|
||||
{
|
||||
return HasAccess(item, 4);
|
||||
return item.item_content.has_read_access();
|
||||
}
|
||||
|
||||
|
||||
// DEPRACATED
|
||||
bool System::HasWriteAccess(const Item & item)
|
||||
{
|
||||
return HasAccess(item, 2);
|
||||
return item.item_content.has_write_access();
|
||||
}
|
||||
|
||||
|
||||
// DEPRACATED
|
||||
bool System::HasReadWriteAccess(const Item & item)
|
||||
{
|
||||
return HasAccess(item, 6); // r+w
|
||||
return item.item_content.has_read_write_access();
|
||||
}
|
||||
|
||||
|
||||
// DEPRACATED
|
||||
bool System::HasReadExecAccess(const Item & item)
|
||||
{
|
||||
if( cur->session && cur->session->puser && cur->session->puser->super_user )
|
||||
{
|
||||
// there must be at least one 'x' (for the root)
|
||||
// !! CHECK ME: is it applicable to directories too?
|
||||
return (item.item_content.privileges & 01111) != 0;
|
||||
}
|
||||
|
||||
return HasAccess(item, 5); // r+x
|
||||
return item.item_content.has_read_exec_access();
|
||||
}
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user