public function setAccess(Project $project, $access_level) { $project_id = $project->getID(); $old_access = $project->getAccess(); switch ($access_level) { case Project::ACCESS_PRIVATE: $this->_getDao()->setIsPrivate($project_id); $is_private = true; break; case Project::ACCESS_PUBLIC: $this->_getDao()->setIsPublic($project_id); $is_private = false; break; case Project::ACCESS_PUBLIC_UNRESTRICTED: $this->_getDao()->setUnrestricted($project_id); $is_private = false; break; default: $GLOBALS['Response']->addFeedback('error', 'bad value ' . $access_level); return; } group_add_history('access', $access_level, $project_id); $this->getEventManager()->processEvent('project_is_private', array('group_id' => $project_id, 'project_is_private' => $is_private)); $this->getEventManager()->processEvent(Event::PROJECT_ACCESS_CHANGE, array('project_id' => $project_id, 'access' => $access_level, 'old_access' => $old_access)); }