private function getSystemEventFromDar($dar)
 {
     if ($row = $dar->getRow()) {
         return $this->system_event_manager->getInstanceFromRow($row);
     }
     return null;
 }
 /**
  * Delete all project repositories (on project deletion).
  *
  * @param Project $project
  */
 public function deleteProjectRepositories(Project $project)
 {
     $repositories = $this->repository_factory->getAllRepositories($project);
     foreach ($repositories as $repository) {
         $repository->forceMarkAsDeleted();
         $this->system_event_manager->createEvent('GIT_REPO_DELETE', $project->getID() . SystemEvent::PARAMETER_SEPARATOR . $repository->getId(), SystemEvent::PRIORITY_MEDIUM);
     }
 }
 private function migrateProject($project_to_migrate)
 {
     $project = $this->project_manager->getProjectFromAutocompleter($project_to_migrate);
     if ($project && $this->wiki_migrator->canMigrate($project)) {
         $this->system_event_manager->createEvent(SystemEvent_PHPWIKI_SWITCH_TO_PLUGIN::NAME, $project->getId(), SystemEvent::PRIORITY_HIGH);
         $GLOBALS['Response']->addFeedback(Feedback::INFO, $GLOBALS['Language']->getText('plugin_phpwiki', 'allowed_project_allow_project'));
     } else {
         $this->sendUpdateProjectListError();
     }
 }
 public function tearDown()
 {
     UserManager::clearInstance();
     ProjectManager::clearInstance();
     SystemEventManager::clearInstance();
     unset($GLOBALS['Language']);
 }
 public function tearDown()
 {
     UserManager::clearInstance();
     ProjectManager::clearInstance();
     SystemEventManager::clearInstance();
     parent::tearDown();
 }
 /**
  * SystemEventManager is singleton
  * 
  * @return SystemEventManager
  */
 public static function instance()
 {
     if (!isset(self::$_instance)) {
         $c = __CLASS__;
         self::$_instance = new $c();
     }
     return self::$_instance;
 }
 /**
  * Compute the content of the widget
  * @return string html
  */
 public function getContent()
 {
     $hp = Codendi_HTMLPurifier::instance();
     $se = SystemEventManager::instance();
     $content = '';
     $content .= $se->fetchLastEventsStatus(0, 10);
     $content .= '<div style="text-align:center"><a href="/admin/system_events/">[ ' . $GLOBALS['Language']->getText('global', 'more') . ' ]</a></div>';
     return $content;
 }
Example #8
0
 /**
  * This method allows one to save any repository attribues changes from the web interface.
  * @param <type> $repoId
  * @param <type> $repoAccess
  * @param <type> $repoDescription
  * @return <type>
  */
 public function save($projectId, $repoId, $repoAccess, $repoDescription)
 {
     $c = $this->getController();
     if (empty($repoId)) {
         $c->addError($this->getText('actions_params_error'));
         $c->redirect('/plugins/git/?action=index&group_id=' . $projectId);
         return false;
     }
     if (empty($repoAccess) || empty($repoDescription)) {
         $c->addError($this->getText('actions_params_error'));
         $c->redirect('/plugins/git/index.php/' . $projectId . '/view/' . $repoId . '/');
         return false;
     }
     $repository = new GitRepository();
     $repository->setId($repoId);
     try {
         $repository->load();
         if (!empty($repoAccess)) {
             if ($repository->getBackend() instanceof Git_Backend_Gitolite) {
                 $repository->getBackend()->savePermissions($repository, $repoAccess);
             } else {
                 if ($repository->getAccess() != $repoAccess) {
                     $this->systemEventManager->createEvent('GIT_REPO_ACCESS', $repoId . SystemEvent::PARAMETER_SEPARATOR . $repoAccess, SystemEvent::PRIORITY_HIGH);
                     $c->addInfo($this->getText('actions_repo_access'));
                 }
             }
         }
         if (strlen($repoDescription) > 1024) {
             $c->addError($this->getText('actions_long_description'));
         } elseif (!empty($repoDescription)) {
             $repository->setDescription($repoDescription);
         }
     } catch (GitDaoException $e) {
         $c->addError($this->getText('actions_repo_not_found'));
         $c->redirect('/plugins/git/?group_id=' . $projectId);
         return false;
     } catch (GitRepositoryException $e1) {
         die('GitRepositoryException');
         $c->addError($e1->getMessage());
         return false;
     }
     try {
         $repository->save();
     } catch (GitDaoException $e) {
         $c->addError($e->getMessage());
         $c->redirect('/plugins/git/index.php/' . $projectId . '/view/' . $repoId . '/');
         return false;
     }
     $c->addInfo($this->getText('actions_save_repo_process'));
     $c->redirect('/plugins/git/index.php/' . $projectId . '/view/' . $repoId . '/');
     return;
 }
 private function getProftpdSystemEventManager()
 {
     return new \Tuleap\ProFTPd\SystemEventManager(SystemEventManager::instance(), Backend::instance(), $this->getPermissionsManager(), ProjectManager::instance(), $this->getPluginInfo()->getPropVal('proftpd_base_directory'));
 }
Example #10
0
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 * 
 * Tuleap is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with Tuleap. If not, see <http://www.gnu.org/licenses/>.
 */
require_once 'pre.php';
$git_dao = new GitDao();
$user_manager = UserManager::instance();
$git_repository_factory = new GitRepositoryFactory($git_dao, ProjectManager::instance());
$system_event_manager = new Git_SystemEventManager(SystemEventManager::instance(), $git_repository_factory);
$git_plugin = PluginManager::instance()->getPluginByName('git');
$logger = $git_plugin->getLogger();
if ($argv[1] == "--init") {
    $repository_path = $argv[2];
    $user_name = $argv[3];
    $repository = $git_repository_factory->getFromFullPath($repository_path);
    if ($repository) {
        $system_event_manager->queueGrokMirrorManifestFollowingAGitPush($repository);
    }
} else {
    $repository_path = $argv[1];
    $user_name = $argv[2];
    $old_rev = $argv[3];
    $new_rev = $argv[4];
    $refname = $argv[5];
 public function isProjectSetReadOnlyOnGerritOnGoing(GitRepository $repository)
 {
     return $this->system_event_manager->isThereAnEventAlreadyOnGoingMatchingFirstParameter(SystemEvent_GIT_GERRIT_PROJECT_READONLY::NAME, $repository->getId());
 }
Example #12
0
             }
             break;
         case User::STATUS_DELETED:
             $user->setStatus($request->get('form_status'));
             $user->setUnixStatus($user->getStatus());
             $accountActivationEvent = 'project_admin_delete_user';
             break;
         case User::STATUS_SUSPENDED:
             $user->setStatus($request->get('form_status'));
             $user->setUnixStatus($user->getStatus());
             break;
     }
 }
 // Change login name
 if ($user->getUserName() != $request->get('form_loginname')) {
     if (SystemEventManager::instance()->canRenameUser($user)) {
         $vLoginName = new Valid_UserNameFormat('form_loginname');
         $vLoginName->required();
         if ($request->valid($vLoginName)) {
             switch ($user->getStatus()) {
                 case User::STATUS_PENDING:
                 case User::STATUS_VALIDATED:
                 case User::STATUS_VALIDATED_RESTRICTED:
                     $user->setUserName($request->get('form_loginname'));
                     break;
                 default:
                     $em->processEvent(Event::USER_RENAME, array('user_id' => $user->getId(), 'new_name' => $request->get('form_loginname')));
                     $GLOBALS['Response']->addFeedback('info', $Language->getText('admin_usergroup', 'rename_user_msg', array($user->getUserName(), $request->get('form_loginname'))));
                     $GLOBALS['Response']->addFeedback('warning', $Language->getText('admin_usergroup', 'rename_user_warn'));
             }
         }
 /**
  * Wrapper for SystemEventManager object
  *
  * @return SystemEventManager
  */
 protected function getSystemEventManager()
 {
     return SystemEventManager::instance();
 }
 public function __construct()
 {
     $this->project_manager = ProjectManager::instance();
     $this->resource_restrictor = new MediawikiSiteAdminResourceRestrictor(new MediawikiSiteAdminResourceRestrictorDao(), $this->project_manager);
     $this->system_event_manager = SystemEventManager::instance();
 }
Example #15
0
 public function getGitSystemEventManager()
 {
     return new Git_SystemEventManager(SystemEventManager::instance(), $this->getRepositoryFactory());
 }
 public function isThereAMigrationQueuedForProject(Project $project)
 {
     return $this->system_event_manager->isThereAnEventAlreadyOnGoingMatchingParameter(SystemEvent_TRACKER_V3_MIGRATION::NAME, $project->getGroupId());
 }
Example #17
0
 private function getTV3MigrationManager()
 {
     return new Tracker_Migration_MigrationManager(new Tracker_SystemEventManager(SystemEventManager::instance()), $this->getTrackerFactory(), $this->getArtifactFactory(), $this->getTrackerFormElementFactory(), UserManager::instance(), ProjectManager::instance());
 }
 public function clearInstance()
 {
     self::$_instance = null;
 }
Example #19
0
 private function getRepositoryManager()
 {
     require_once 'GitRepositoryManager.class.php';
     return new GitRepositoryManager($this->getRepositoryFactory(), SystemEventManager::instance());
 }
 /**
  * @see root_daily_start
  */
 public function root_daily_start($params)
 {
     SystemEventManager::instance()->createEvent(SystemEvent_STATISTICS_DAILY::NAME, null, SystemEvent::PRIORITY_LOW, SystemEvent::OWNER_ROOT);
 }
Example #21
0
    $sefdao->delete($request->get('delete'));
    $GLOBALS['Response']->redirect('/admin/system_events/');
}
if ($request->get('cancel')) {
    $GLOBALS['Response']->redirect('/admin/system_events/');
}
if ($request->get('save') && ($followers = $request->get('followers'))) {
    list($id, $info) = each($followers);
    $sefdao->save($id, $info['emails'], implode(',', $info['types']));
    $GLOBALS['Response']->redirect('/admin/system_events/');
}
$hp = Codendi_HTMLPurifier::instance();
$title = $Language->getText('admin_system_events', 'title');
$HTML->header(array('title' => $title));
echo '<h2>' . $hp->purify($title, CODENDI_PURIFIER_CONVERT_HTML) . '</h2>';
$se = SystemEventManager::instance();
$offset = $request->get('offset') && !$request->exist('filter') ? (int) $request->get('offset') : 0;
$limit = 50;
$full = true;
$filter_status = $request->get('filter_status');
if (!$filter_status) {
    $filter_status = array(SystemEvent::STATUS_NEW, SystemEvent::STATUS_RUNNING, SystemEvent::STATUS_DONE, SystemEvent::STATUS_WARNING, SystemEvent::STATUS_ERROR);
}
$filter_type = $request->get('filter_type');
if (!$filter_type) {
    $filter_type = $se->getTypes();
}
echo '<form action="" method="POST">';
echo '<fieldset>';
echo '<legend id="system_events_filter" class="' . Toggler::getClassname('system_events_filter') . '">Filter:</legend>';
echo '<strong>' . 'Status:' . '</strong> <input type="hidden" name="filter_status[]" value="' . $hp->purify(SystemEvent::STATUS_NONE, CODENDI_PURIFIER_CONVERT_HTML) . '" />';
 public static function queueInSystemEventManager(SystemEventManager $system_event_manager, GitRepository $repository)
 {
     $system_event_manager->createEvent(self::NAME, $repository->getId(), SystemEvent::PRIORITY_HIGH, SystemEvent::OWNER_APP);
 }
Example #23
0
 private function getSystemEventManager()
 {
     return SystemEventManager::instance();
 }
Example #24
0
 public function __construct()
 {
     parent::__construct();
     $this->system_event_manager = SystemEventManager::instance();
 }
Example #25
0
 protected function _informAboutPendingEvents($repoId)
 {
     $sem = SystemEventManager::instance();
     $dar = $sem->_getDao()->searchWithParam('head', $this->groupId, array('GIT_REPO_CREATE', 'GIT_REPO_DELETE'), array(SystemEvent::STATUS_NEW, SystemEvent::STATUS_RUNNING));
     foreach ($dar as $row) {
         $p = explode(SystemEvent::PARAMETER_SEPARATOR, $row['parameters']);
         $repository = $this->factory->getDeletedRepository($p[1]);
         switch ($row['type']) {
             case 'GIT_REPO_CREATE':
                 $GLOBALS['Response']->addFeedback('info', $this->getText('feedback_event_create', array($p[1])));
                 break;
             case 'GIT_REPO_DELETE':
                 $GLOBALS['Response']->addFeedback('info', $this->getText('feedback_event_delete', array($repository->getFullName())));
                 break;
         }
     }
     if ($repoId !== 0) {
         $dar = $sem->_getDao()->searchWithParam('head', $repoId, array('GIT_REPO_ACCESS'), array(SystemEvent::STATUS_NEW, SystemEvent::STATUS_RUNNING));
         foreach ($dar as $row) {
             $GLOBALS['Response']->addFeedback('info', $this->getText('feedback_event_access'));
         }
     }
 }
Example #26
0
 /**
  * Instantiate an action based on a given name.
  *
  * Can be overriden to pass additionnal parameters to the action
  *
  * @param string $action The name of the action
  *
  * @return PluginActions
  */
 protected function instantiateAction($action)
 {
     return new $action($this, SystemEventManager::instance(), $this->factory);
 }
 public function isProjectReindexationAlreadyQueued($project_id)
 {
     return $this->system_event_manager->areThereMultipleEventsQueuedMatchingFirstParameter(SystemEvent_FULLTEXTSEARCH_TRACKER_REINDEX_PROJECT::NAME, $project_id);
 }
Example #28
0
require_once 'www/admin/admin_utils.php';
require_once 'www/project/admin/project_admin_utils.php';
require_once 'www/project/export/project_export_utils.php';
require_once 'www/project/admin/project_history.php';
require_once 'common/include/TemplateSingleton.class.php';
require_once 'common/event/EventManager.class.php';
session_require(array('group' => '1', 'admin_flags' => 'A'));
$pm = ProjectManager::instance();
$group = $pm->getProject($group_id, false, true);
$currentproject = new project($group_id);
$em = EventManager::instance();
$Rename = $request->get('Rename');
if ($Rename) {
    $new_name = $request->get('new_name');
    if (isset($new_name) && $group_id) {
        if (SystemEventManager::instance()->canRenameProject($group)) {
            $rule = new Rule_ProjectName();
            if (!$rule->isValid($new_name)) {
                $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('admin_groupedit', 'invalid_short_name'));
                $GLOBALS['Response']->addFeedback('error', $rule->getErrorMessage());
                $GLOBALS['Response']->redirect('/admin/groupedit.php?group_id=' . $group_id);
            } else {
                $em->processEvent(Event::PROJECT_RENAME, array('group_id' => $group_id, 'new_name' => $new_name));
                //update group history
                group_add_history('rename_request', $group->getUnixName(false) . ' :: ' . $new_name, $group_id);
                $GLOBALS['Response']->addFeedback('info', $Language->getText('admin_groupedit', 'rename_project_msg', array($group->getUnixName(false), $new_name)));
                $GLOBALS['Response']->addFeedback('warning', $Language->getText('admin_groupedit', 'rename_project_warn'));
                $GLOBALS['Response']->redirect('/admin/groupedit.php?group_id=' . $group_id);
            }
        } else {
            $GLOBALS['Response']->addFeedback('warning', $Language->getText('admin_groupedit', 'rename_project_already_queued'), CODENDI_PURIFIER_DISABLED);
Example #29
0
}
$cookie_manager = new CookieManager();
if (!IS_SCRIPT) {
    // Prevent "Pragma: no-cache" to be sent to user (break https & IE)
    session_cache_limiter(false);
    session_start();
    $GLOBALS['session_hash'] = $cookie_manager->isCookie('session_hash') ? $cookie_manager->getCookie('session_hash') : false;
}
//}}}
// Create cache directory if needed
if (!file_exists($GLOBALS['codendi_cache_dir'])) {
    // This directory must be world reachable, but writable only by the web-server
    mkdir($GLOBALS['codendi_cache_dir'], 0755);
}
// Instantiate System Event listener
$system_event_manager = SystemEventManager::instance();
//Load plugins
$plugin_manager =& PluginManager::instance();
$plugin_manager->loadPlugins();
$feedback = '';
// Initialize global var
//library to determine browser settings
if (!IS_SCRIPT) {
    require_once 'browser.php';
}
//Language
if (!$GLOBALS['sys_lang']) {
    $GLOBALS['sys_lang'] = "en_US";
}
$Language = new BaseLanguage($GLOBALS['sys_supported_languages'], $GLOBALS['sys_lang']);
//various html utilities
 private function getTrackerSystemEventManager()
 {
     $form_element_factory = Tracker_FormElementFactory::instance();
     $permissions_serializer = new Tracker_Permission_PermissionsSerializer(new Tracker_Permission_PermissionRetrieveAssignee(UserManager::instance()));
     $artifact_properties_extractor = new ElasticSearch_1_2_ArtifactPropertiesExtractor($form_element_factory, $permissions_serializer);
     return new FullTextSearch_TrackerSystemEventManager(SystemEventManager::instance(), new FullTextSearchTrackerActions($this->getIndexClient(self::SEARCH_TRACKER_TYPE), new ElasticSearch_1_2_RequestTrackerDataFactory($artifact_properties_extractor), $this->getFullTextSearchSystemEventQueue()->getLogger()), Tracker_ArtifactFactory::instance(), TrackerFactory::instance(), $this, $this->getFullTextSearchSystemEventQueue()->getLogger());
 }