blob: 4bafc5c2808e48e781caa46f692e3d030cdcb1d3 (
plain) (
tree)
|
|
<?php
abstract class Object extends Framework
{
/*
* Check if given user has permissions for this object
*/
function canAccess($user)
{
if ($user->admin)
return true;
if ($this->isOwner($user))
return true;
if ($this->isMember($user))
return true;
if ($this->perms & 0x004) // accessible by public
return true;
if ($this->parent != "")
{
$parent = new DBObject($this->parent);
if ($parent->canAccessSub($user))
return true;
}
else if ($this->owner != $this->guid)
{
$owner = new DBObject($this->owner);
if ($owner->canAccessSub($user))
return true;
}
return false;
}
/*
* Check if given user has permissions for this object
*/
function canModify($user)
{
if ($user->admin)
return true;
if ($this->isOwner($user))
return true;
if ($this->isMember($user) && $this->perms & 0x100)
return true;
if ($this->parent != "")
{
$parent = new DBObject($this->parent);
if ($parent->canModifySub($user))
return true;
}
else if ($this->owner != $this->guid)
{
$owner = new DBObject($this->owner);
if ($owner->canModifySub($user))
return true;
}
return false;
}
/*
* Check if given user has permissions for this object
*/
function canModifyMembers($user)
{
if ($user->admin)
return true;
if ($this->isOwner($user))
return true;
if ($this->isMember($user) && $this->perms & 0x080)
return true;
if ($this->parent != "")
{
$parent = new DBObject($this->parent);
if ($parent->canModifySubMembers($user))
return true;
}
else if ($this->owner != $this->guid)
{
$owner = new DBObject($this->owner);
if ($owner->canModifySubMembers($user))
return true;
}
return false;
}
/*
* Check if given user has permissions for this object
*/
function canModifyPermissions($user)
{
if ($user->admin)
return true;
if ($this->isOwner($user))
return true;
if ($this->parent != "")
{
$parent = new DBObject($this->parent);
if ($parent->canModifySubPermissions($user))
return true;
}
else if ($this->owner != $this->guid)
{
$owner = new DBObject($this->owner);
if ($owner->canModifySubPermissions($user))
return true;
}
return false;
}
/*
* Check if given user has permissions for this object
*/
function canAccessSub($user)
{
if ($user->admin)
return true;
if ($this->isOwner($user))
return true;
if ($this->isMember($user) && $this->perms & 0x040)
return true;
if ($this->perms & 0x002) // accessible by public
return true;
if ($this->parent != "")
{
$parent = new DBObject($this->parent);
if ($parent->canAccessSub($user))
return true;
}
else if ($this->owner != $this->guid)
{
$owner = new DBObject($this->owner);
if ($owner->canAccessSub($user))
return true;
}
return false;
}
/*
* Check if given user has permissions for this object
*/
function canCreateSub($user)
{
if ($user->admin)
return true;
if ($this->isOwner($user))
return true;
if ($this->isMember($user) && $this->perms & 0x020)
return true;
if ($this->perms & 0x001) // accessible by public
return true;
if ($this->parent != "")
{
$parent = new DBObject($this->parent);
if ($parent->canCreateSub($user))
return true;
}
else if ($this->owner != $this->guid)
{
$owner = new DBObject($this->owner);
if ($owner->canCreateSub($user))
return true;
}
return false;
}
/*
* Check if given user has permissions for this object
*/
function canModifySub($user)
{
if ($user->admin)
return true;
if ($this->isOwner($user))
return true;
if ($this->isMember($user) && $this->perms & 0x010)
return true;
if ($this->parent != "")
{
$parent = new DBObject($this->parent);
if ($parent->canModifySub($user))
return true;
}
else if ($this->owner != $this->guid)
{
$owner = new DBObject($this->owner);
if ($owner->canModifySub($user))
return true;
}
return false;
}
/*
* Check if given user has permissions for this object
*/
function canModifySubMembers($user)
{
if ($user->admin)
return true;
if ($this->isOwner($user))
return true;
if ($this->isMember($user) && $this->perms & 0x008)
return true;
if ($this->parent != "")
{
$parent = new DBObject($this->parent);
if ($parent->canModifySubMembers($user))
return true;
}
else if ($this->owner != $this->guid)
{
$owner = new DBObject($this->owner);
if ($owner->canModifySubMembers($user))
return true;
}
return false;
}
/*
* Check if given user has permissions for this object
*/
function canModifySubPermissions($user)
{
if ($user->admin)
return true;
if ($this->isOwner($user))
return true;
if ($this->parent != "")
{
$parent = new DBObject($this->parent);
if ($parent->canModifySubPermissions($user))
return true;
}
else if ($this->owner != $this->guid)
{
$owner = new DBObject($this->owner);
if ($owner->canModifySubPermissions($user))
return true;
}
return false;
}
/*
* Get URL to this object
*/
function getURL()
{
return $this->ar() . "/" . $this->guid;
}
/*
* Get object's head image
*/
function getHeadImage()
{
return $this->ar() . "/file.php?d=img/heads&f=" . $this->guid;
}
/*
* Remove this object's head image
*/
function rmHeadImage()
{
if (!is_file("assets/img/heads/" . $this->guid))
return true;
return unlink("assets/img/heads/" . $this->guid);
}
}
?>
|