/** * Determines whether a ProjectUser object allows access to an object * * @param ApplicationDataObject $object * @param ProjectPermission $proj_perm * @return unknown */ function can_manage_type($object_type, $proj_perm, $access_level) { if ($proj_perm) { switch ($object_type) { case 'ProjectEvents': if ($access_level == ACCESS_LEVEL_WRITE) { return $proj_perm->getCanWriteEvents(); } else { if ($access_level == ACCESS_LEVEL_READ) { return $proj_perm->getCanReadEvents(); } else { return false; } } break; case 'ProjectFiles': if ($access_level == ACCESS_LEVEL_WRITE) { return $proj_perm->getCanWriteFiles(); } else { if ($access_level == ACCESS_LEVEL_READ) { return $proj_perm->getCanReadFiles(); } else { return false; } } break; case 'ProjectMessages': if ($access_level == ACCESS_LEVEL_WRITE) { return $proj_perm->getCanWriteMessages(); } else { if ($access_level == ACCESS_LEVEL_READ) { return $proj_perm->getCanReadMessages(); } else { return false; } } break; case 'ProjectMilestones': if ($access_level == ACCESS_LEVEL_WRITE) { return $proj_perm->getCanWriteMilestones(); } else { if ($access_level == ACCESS_LEVEL_READ) { return $proj_perm->getCanReadMilestones(); } else { return false; } } break; case 'ProjectTasks': if ($access_level == ACCESS_LEVEL_WRITE) { return $proj_perm->getCanWriteTasks(); } else { if ($access_level == ACCESS_LEVEL_READ) { return $proj_perm->getCanReadTasks(); } else { return false; } } break; case 'ProjectWebpages': if ($access_level == ACCESS_LEVEL_WRITE) { return $proj_perm->getCanWriteWeblinks(); } else { if ($access_level == ACCESS_LEVEL_READ) { return $proj_perm->getCanReadWeblinks(); } else { return false; } } break; case 'MailContents': if ($access_level == ACCESS_LEVEL_WRITE) { return $proj_perm->getCanWriteMails(); } else { if ($access_level == ACCESS_LEVEL_READ) { return $proj_perm->getCanReadMails(); } else { return false; } } break; case 'Companies': case 'Contacts': if ($access_level == ACCESS_LEVEL_WRITE) { return $proj_perm->getCanWriteContacts(); } else { if ($access_level == ACCESS_LEVEL_READ) { return $proj_perm->getCanReadContacts(); } else { return false; } } break; } } return false; }