public function hasInterfaceAccessPriviledges($owner, $gid, $interface, $accessMethod = '*')
	{
		if($interface == '')
			$interface = '*';

		// TODO implement checks for distiction for R/W/*

		try
		{
			$rules = $this->loadAccessControlRulesForInterface($owner, $gid, $interface);

			// filter out rules with wrong access type
			if($accessMethod == AccessControlRuleObject::ACCESS_TYPE_WRITE)
			{
				foreach($rules as $id => $rule)
				{
					if($rule->getAccessType() == AccessControlRuleObject::ACCESS_TYPE_READ)
						unset($rules[$id]);
				}
			}
			elseif($accessMethod == AccessControlRuleObject::ACCESS_TYPE_READ)
			{
				foreach($rules as $id => $rule)
				{
					if($rule->getAccessType() == AccessControlRuleObject::ACCESS_TYPE_WRITE)
						unset($rules[$id]);
				}
			}

			return $this->executeAccessControlRules($gid, $rules);
		}
		catch (AccessControlManagerException $e)
		{
			if($this->baseDirectiveInterface == AccessControlManager::DIRECTIVE_DENY)
				return false;
			else
				return true;
		}
	}