public function indexAction() { $this->view->project = $this->_project; $SVN = new USVN_SVN($this->_project->name); $this->view->log = $SVN->log(5); $this->render("index"); }
/** * Retrieve project history * * http://usvn.localhost/service/history * * <?xml version="1.0" encoding="UTF-8"?> * <usvn> * <auth> * <username>USERNAME</username> * <password>PASSWORD</password> * </auth> * <project>PROJECT_NAME</project> * </usvn> * * @todo Add translation for "You don't have permission to access project %s" */ public function historyAction() { // Parse XML request $this->_parseRequest(); // Authenticate if (!$this->_auth()) { throw new Zend_Exception("Authentication failure"); } // Get project information $project_name = (string) $this->_xml->project; $table = new USVN_Db_Table_Projects(); $project = $table->fetchRow(array("projects_name = ?" => (string) $project_name)); if (!$project) { $this->_outputErrorResponse(sprintf(T_("Invalid project name %s."), $project_name), 10); } // Verify user groups $hasGroup = FALSE; $groups = $this->_userRow->findManyToManyRowset("USVN_Db_Table_Groups", "USVN_Db_Table_UsersToGroups"); foreach ($groups as $group) { // Verify project groups if ($project->groupIsMember($group)) { $hasGroup = TRUE; break; } } // Verify user permission if ($this->_userRow['users_is_admin'] === 1 || $hasGroup === TRUE) { $SVN = new USVN_SVN($project_name); $logs = $SVN->log(100); // Start create XML return $dom = new DOMDocument("1.0", "UTF-8"); $xmlService = $dom->createElement("usvn"); $xmlService = $dom->appendChild($xmlService); // Loop into logs $xmlLogs = $xmlService->appendChild($dom->createElement("history")); foreach ($logs as $log) { $xmlNode = $xmlLogs->appendChild($dom->createElement("log")); $xmlNode->appendChild($dom->createElement("author", $log['author'])); $xmlNode->appendChild($dom->createElement("comment", $log['msg'])); $xmlNode->appendChild($dom->createElement("date", date("Y-m-d H:i:s", $log['date']))); } // Output $this->_outputResponse($dom); } else { $this->_outputErrorResponse(sprintf(T_("You don't have permission to access project %s"), $project_name), 10); } }
public function lasthundredrequestAction() { $project = $this->getRequest()->getParam('project'); $table = new USVN_Db_Table_Projects(); $project = $table->fetchRow(array("projects_name = ?" => $project)); /* @var $project USVN_Db_Table_Row_Project */ if ($project === null) { $this->_redirect("/"); } $this->_project = $project; $this->view->project = $this->_project; $SVN = new USVN_SVN($this->_project->name); try { $number_start = $project = $this->getRequest()->getParam('number_start'); $number_end = $project = $this->getRequest()->getParam('number_end'); $this->view->number_start = $number_start; $this->view->number_end = $number_end; if (empty($number_end)) { $number_end = null; } else { $number_end = $this->convertDate($number_end); } $number_start = $this->convertDate($number_start); $this->view->log = $SVN->log(100, $number_start, $number_end); $this->render("timeline"); } catch (USVN_Exception $e) { $this->view->message = "No such revision found"; $this->view->log = $SVN->log(100); $this->render("timeline"); } }