Beispiel #1
0
 public function indexAction()
 {
     $this->view->project = $this->_project;
     $SVN = new USVN_SVN($this->_project->name);
     $this->view->log = $SVN->log(5);
     $this->render("index");
 }
Beispiel #2
0
 /**
  * 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);
     }
 }
Beispiel #3
0
 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");
     }
 }