private function processRepoManagementNotifications($pane, $repoId, $repositoryName, $user) { $this->addView('repoManagement'); if ($this->request->exist('mail_prefix')) { $valid = new Valid_String('mail_prefix'); $valid->required(); $mailPrefix = $this->request->getValidated('mail_prefix', $valid, ''); $this->addAction('notificationUpdatePrefix', array($this->groupId, $repoId, $mailPrefix, $pane)); } $add_mail = $this->request->getValidated('add_mail'); if ($add_mail) { $validMails = array(); $mails = array_map('trim', preg_split('/[,;]/', $add_mail)); $rule = new Rule_Email(); $um = UserManager::instance(); foreach ($mails as $mail) { if ($rule->isValid($mail)) { $validMails[] = $mail; } else { $user = $um->findUser($mail); if ($user) { $mail = $user->getEmail(); if ($mail) { $validMails[] = $mail; } else { $this->addError($this->getText('no_user_mail', array($mail))); } } else { $this->addError($this->getText('no_user', array($mail))); } } } $this->addAction('notificationAddMail', array($this->groupId, $repoId, $validMails, $pane)); } $remove_mail = $this->request->get('remove_mail'); if (is_array($remove_mail)) { $mails = array(); $valid = new Valid_Email('remove_mail'); $valid->required(); if ($this->request->validArray($valid)) { $mails = $this->request->get('remove_mail'); } if (count($mails) > 0) { $this->addAction('notificationRemoveMail', array($this->groupId, $repoId, $mails, $pane)); } } $this->addAction('redirectToRepoManagement', array($this->groupId, $repoId, $pane)); }
public function _dispatchActionAndView($action, $repoId, $repositoryName, $user) { switch ($action) { #CREATE REF case 'create': $this->addView('create'); break; #admin #admin case 'view': $this->addAction('getRepositoryDetails', array($this->groupId, $repoId)); $this->addView('view'); break; #ADD REF #ADD REF case 'add': $this->addAction('createReference', array($this->groupId, $repositoryName)); $this->addView('index'); break; #DELETE a repository #DELETE a repository case 'del': $this->addAction('deleteRepository', array($this->groupId, $repoId)); $this->addView('index'); break; #EDIT #EDIT case 'edit': if ($this->isAPermittedAction('clone') && $this->request->get('clone')) { $valid = new Valid_UInt('parent_id'); $valid->required(); if ($this->request->valid($valid)) { $parentId = (int) $this->request->get('parent_id'); } $this->addAction('cloneRepository', array($this->groupId, $repositoryName, $parentId)); $this->addAction('getRepositoryDetails', array($this->groupId, $parentId)); $this->addView('view'); } else { if ($this->isAPermittedAction('confirm_deletion') && $this->request->get('confirm_deletion')) { $this->addAction('confirmDeletion', array($this->groupId, $repoId)); $this->addView('confirm_deletion', array(0 => array('repo_id' => $repoId))); } else { if ($this->isAPermittedAction('save') && $this->request->get('save')) { $valid = new Valid_Text('repo_desc'); $valid->required(); if ($this->request->valid($valid)) { $repoDesc = $this->request->get('repo_desc'); } $valid = new Valid_String('repo_access'); $valid->required(); if ($this->request->valid($valid) || is_array($this->request->get('repo_access'))) { $repoAccess = $this->request->get('repo_access'); } $this->addAction('save', array($this->groupId, $repoId, $repoAccess, $repoDesc)); $this->addView('view'); } else { $this->addError($this->getText('controller_access_denied')); $this->redirect('/plugins/git/?group_id=' . $this->groupId); } } } break; #repo_management #repo_management case 'repo_management': $this->addAction('repoManagement', array($this->groupId, $repoId)); $this->addView('repoManagement'); break; #mail prefix #mail prefix case 'mail_prefix': $valid = new Valid_String('mail_prefix'); $valid->required(); if ($this->request->valid($valid)) { $mailPrefix = $this->request->get('mail_prefix'); } else { $mailPrefix = ''; } $this->addAction('notificationUpdatePrefix', array($this->groupId, $repoId, $mailPrefix)); $this->addView('repoManagement'); break; #add mail #add mail case 'add_mail': $validMails = array(); $mails = array_map('trim', preg_split('/[,;]/', $this->request->get('add_mail'))); $rule = new Rule_Email(); $um = UserManager::instance(); foreach ($mails as $mail) { if ($rule->isValid($mail)) { $validMails[] = $mail; } else { $user = $um->findUser($mail); if ($user) { $mail = $user->getEmail(); if ($mail) { $validMails[] = $mail; } else { $this->addError($this->getText('no_user_mail', array($mail))); } } else { $this->addError($this->getText('no_user', array($mail))); } } } $this->addAction('notificationAddMail', array($this->groupId, $repoId, $validMails)); $this->addView('repoManagement'); break; #remove mail #remove mail case 'remove_mail': $mails = array(); $valid = new Valid_Email('mail'); $valid->required(); if ($this->request->validArray($valid)) { $mails = $this->request->get('mail'); } if (count($mails) > 0) { $this->addAction('notificationRemoveMail', array($this->groupId, $repoId, $mails)); $this->addView('repoManagement'); } else { $this->addAction('repoManagement', array($this->groupId, $repoId)); $this->addView('repoManagement'); } break; #fork #fork case 'fork': $this->addAction('repoManagement', array($this->groupId, $repoId)); $this->addView('forkRepositories'); break; #confirm_private #confirm_private case 'confirm_private': if ($this->isAPermittedAction('confirm_deletion') && $this->request->get('confirm_deletion')) { $this->addAction('confirmDeletion', array($this->groupId, $repoId)); $this->addView('confirm_deletion', array(0 => array('repo_id' => $repoId))); } else { if ($this->isAPermittedAction('save') && $this->request->get('save')) { $valid = new Valid_Text('repo_desc'); $valid->required(); if ($this->request->valid($valid)) { $repoDesc = $this->request->get('repo_desc'); } $valid = new Valid_String('repo_access'); $valid->required(); if ($this->request->valid($valid)) { $repoAccess = $this->request->get('repo_access'); } $this->addAction('confirmPrivate', array($this->groupId, $repoId, $repoAccess, $repoDesc)); $this->addView('confirmPrivate'); } } break; #SET TO PRIVATE #SET TO PRIVATE case 'set_private': $this->addAction('setPrivate', array($this->groupId, $repoId)); $this->addView('view'); break; case 'fork_repositories': $this->addAction('getProjectRepositoryList', array($this->groupId)); $this->addView('forkRepositories'); break; case 'do_fork_repositories': try { if ($this->request->get('choose_destination') == 'personal') { $this->_doDispatchForkRepositories($this->request, $user); } else { $this->_doDispatchForkCrossProject($this->request, $user); } } catch (MalformedPathException $e) { $this->addError($this->getText('fork_malformed_path')); } $this->addAction('getProjectRepositoryList', array($this->groupId)); $this->addView('forkRepositories'); break; case "view_last_git_pushes": $vGroupId = new Valid_GroupId(); $vGroupId->required(); if ($this->request->valid($vGroupId)) { $groupId = $this->request->get('group_id'); } $vWeeksNumber = new Valid_UInt('weeks_number'); if ($this->request->valid($vWeeksNumber)) { $weeksNumber = $this->request->get('weeks_number'); } if (empty($weeksNumber) || $weeksNumber > Git_LastPushesGraph::MAX_WEEKSNUMBER) { $weeksNumber = 12; } $imageRenderer = new Git_LastPushesGraph($groupId, $weeksNumber); $imageRenderer->display(); break; #LIST #LIST default: $user_id = null; $valid = new Valid_UInt('user'); $valid->required(); if ($this->request->valid($valid)) { $user_id = $this->request->get('user'); $this->addData(array('user' => $user_id)); } $this->addAction('getProjectRepositoryList', array($this->groupId, $user_id)); $this->addView('index'); break; } }
} $sendMail->processMail($messageToAdmin); exit; } $um = UserManager::instance(); $user = $um->getCurrentUser(); if (!$user->isLoggedIn()) { exit_error($Language->getText('include_exit', 'error'), $Language->getText('include_exit', 'not_logged_in')); } $email = $user->getEmail(); $valid = new Valid_Email('toaddress'); $valid->required(); if ($request->valid($valid)) { $toaddress = $request->get('toaddress'); } $valid = new Valid_Email('touser'); $valid->required(); if ($request->valid($valid)) { $touser = $request->get('touser'); } if (!isset($toaddress) && !isset($touser)) { exit_error($Language->getText('include_exit', 'error'), $Language->getText('sendmessage', 'err_noparam')); } if (strpos(':', $GLOBALS['sys_default_domain']) === false) { $host = $GLOBALS['sys_default_domain']; } else { list($host, $port) = explode(':', $GLOBALS['sys_default_domain']); } if (isset($toaddress) && !eregi($host, $toaddress)) { exit_error($Language->getText('include_exit', 'error'), $Language->getText('sendmessage', 'err_host', array($host))); }
$date_list = split('-', $request->get('expiry_date'), 3); $unix_expiry_time = mktime(0, 0, 0, $date_list[1], $date_list[2], $date_list[0]); if ($user->getExpiryDate() != $unix_expiry_time) { $user->setExpiryDate($unix_expiry_time); } } else { if ($user->getExpiryDate()) { $user->setExpiryDate(''); } } $vShell = new Valid_WhiteList('form_shell', $user->getAllUnixShells()); $vShell->required(); if ($request->valid($vShell)) { $user->setShell($request->get('form_shell')); } $vEmail = new Valid_Email('email'); $vEmail->required(); if ($request->valid($vEmail)) { $user->setEmail($request->get('email')); } $vRealName = new Valid_String('form_realname'); $vRealName->required(); if ($request->valid($vRealName)) { $user->setRealName($request->get('form_realname')); } // form_unixstatus must be BEFORE form_status validation because // form_status can constraint form_unixstatus $vUnixStatus = new Valid_WhiteList('form_unixstatus', $user->getAllUnixStatus()); $vUnixStatus->required(); if ($request->valid($vUnixStatus)) { $user->setUnixStatus($request->get('form_unixstatus'));