public function deleteByIssueId($issueId) { $query = "delete from yongo_issue_watch where yongo_issue_id = ?"; $stmt = UbirimiContainer::get()['db.connection']->prepare($query); $stmt->bind_param("i", $issueId); $stmt->execute(); }
public function indexAction(Request $request, SessionInterface $session) { Util::checkUserIsLoggedInAndRedirect(); $loggedInUserId = $session->get('user/id'); $menuSelectedCategory = 'issue'; $clientSettings = $session->get('client/settings'); $issues = $this->getRepository(Issue::class)->getByParameters(array('issue_id' => UbirimiContainer::get()['session']->get('bulk_change_issue_ids'), $loggedInUserId)); if ($request->request->has('confirm')) { if (UbirimiContainer::get()['session']->get('bulk_change_operation_type') == 'delete') { $issueIds = UbirimiContainer::get()['session']->get('bulk_change_issue_ids'); for ($i = 0; $i < count($issueIds); $i++) { if (UbirimiContainer::get()['session']->get('bulk_change_send_operation_email')) { $issue = $this->getRepository(Issue::class)->getByParameters(array('issue_id' => $issueIds[$i]), $loggedInUserId); $issueEvent = new IssueEvent($issue, null, IssueEvent::STATUS_DELETE); $this->getLogger()->addInfo('DELETE Yongo issue ' . $issue['project_code'] . '-' . $issue['nr'], $this->getLoggerContext()); UbirimiContainer::get()['dispatcher']->dispatch(YongoEvents::YONGO_ISSUE_EMAIL, $issueEvent); } $this->getRepository(Issue::class)->deleteById($issueIds[$i]); $this->getRepository(IssueAttachment::class)->deleteByIssueId($issueIds[$i]); // also delete the substaks $childrenIssues = $this->getRepository(Issue::class)->getByParameters(array('parent_id' => $issueIds[$i]), $loggedInUserId); while ($childrenIssues && ($childIssue = $childrenIssues->fetch_array(MYSQLI_ASSOC))) { $this->getRepository(Issue::class)->deleteById($childIssue['id']); $this->getRepository(IssueAttachment::class)->deleteByIssueId($childIssue['id']); } } } return new RedirectResponse('/yongo/issue/search?' . UbirimiContainer::get()['session']->get('bulk_change_choose_issue_query_url')); } $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_YONGO_NAME . ' / Bulk: Operation Confirmation'; return $this->render(__DIR__ . '/../../../Resources/views/issue/bulk/OperationConfirmation.php', get_defined_vars()); }
public function indexAction(Request $request, SessionInterface $session) { Util::checkUserIsLoggedInAndRedirect(); $entityId = $session->get('current_edit_entity_id'); $attachments = $this->getRepository(EntityAttachment::class)->getByEntityId($entityId); $html = ''; $index = 0; if ($attachments) { $entity = $this->getRepository(Entity::class)->getById($entityId); $html .= '<div style="width: 100%; height: 500px; overflow-y: scroll">'; while ($attachment = $attachments->fetch_array(MYSQLI_ASSOC)) { // todo: check if the attachment is an image // get the last revision $attachmentRevisions = $this->getRepository(Entity::class)->getRevisionsByAttachmentId($attachment['id']); $lastRevisionNumber = $attachmentRevisions->num_rows; $html .= '<img data="/assets' . UbirimiContainer::get()['asset.documentador_entity_attachments'] . $entity['space_id'] . '/' . $entityId . '/' . $attachment['id'] . '/' . $lastRevisionNumber . '/' . $attachment['name'] . '" id="entity_existing_image_' . $attachment['id'] . '" style="float: left; padding-right: 10px; width: 240px" src="/assets' . UbirimiContainer::get()['asset.documentador_entity_attachments'] . $entity['space_id'] . '/' . $entityId . '/' . $attachment['id'] . '/' . $lastRevisionNumber . '/' . $attachment['name'] . '" />'; $index++; if ($index > 4) { $index = 0; $html .= '<br />'; } } $html .= '</div>'; } else { $html .= '<div class="infoBox">There are no images for this page</div>'; } return new \Symfony\Component\HttpFoundation\Response($html); }
public function indexAction(Request $request, SessionInterface $session) { Util::checkUserIsLoggedInAndRedirect(); $loggedInUserId = $session->get('user/id'); $issueId = $request->request->get('issue_id'); $attachIdsToBeKept = $request->request->get('attach_ids'); $comment = Util::cleanRegularInputField($request->request->get('comment')); if (!is_array($attachIdsToBeKept)) { $attachIdsToBeKept = array(); } Util::manageModalAttachments($issueId, $session->get('user/id'), $attachIdsToBeKept); if (!empty($comment)) { $currentDate = Util::getServerCurrentDateTime(); $this->getRepository(IssueComment::class)->add($issueId, $session->get('user/id'), $comment, $currentDate); } // send email notification $issueQueryParameters = array('issue_id' => $issueId); $issue = $this->getRepository(Issue::class)->getByParameters($issueQueryParameters, $loggedInUserId); $project = $this->getRepository(YongoProject::class)->getById($issue['issue_project_id']); $issueEventData = array('user_id' => $loggedInUserId, 'attachmentIds' => UbirimiContainer::get()['session']->get('added_attachments_in_screen'), 'comment' => $comment); $issueEvent = new IssueEvent($issue, $project, IssueEvent::STATUS_UPDATE, $issueEventData); UbirimiContainer::get()['dispatcher']->dispatch(YongoEvents::YONGO_ISSUE_ADD_ATTACHMENT, $issueEvent); UbirimiContainer::get()['session']->remove('added_attachments_in_screen'); return new Response(''); }
public function deleteById($reminderId) { $query = "delete from cal_event_reminder where id = ? limit 1"; $stmt = UbirimiContainer::get()['db.connection']->prepare($query); $stmt->bind_param("i", $reminderId); $stmt->execute(); }
public function getByIssueIdAndUserId($issueId = null, $userId = null, $order = null, $resultType = null) { $query = '(select \'history_event\' as source, ' . 'issue_history.date_created, ' . 'issue_history.field as field, ' . 'issue_history.old_value as old_value, ' . 'issue_history.new_value as new_value, ' . 'issue_history.old_value_id as old_value_id, ' . 'issue_history.new_value_id as new_value_id, ' . 'null as content, ' . 'general_user.id as user_id, general_user.first_name, general_user.last_name, ' . 'yongo_issue.nr as nr, ' . 'project.code as code, ' . 'yongo_issue.id as issue_id ' . 'from issue_history ' . 'left join general_user on general_user.id = issue_history.by_user_id ' . 'left join yongo_issue on yongo_issue.id = issue_history.issue_id ' . 'left join project on project.id = yongo_issue.project_id ' . 'where '; if ($issueId) { $query .= ' issue_history.issue_id = ' . $issueId . ' '; } if ($userId) { $query .= ' issue_history.by_user_id = ' . $userId . ' '; } if (!$order) { $order = 'desc'; } $query .= 'order by date_created ' . $order . ', user_id) '; $query .= ' UNION (select ' . "'event_commented' as source, " . 'issue_comment.date_created as date_created, ' . 'null as field, ' . 'null as old_value, ' . 'null as new_value, ' . 'null as old_value_id, ' . 'null as new_value_id, ' . 'null as content, ' . 'general_user.id as user_id, general_user.first_name, general_user.last_name, ' . 'yongo_issue.nr as nr, ' . 'project.code as code, ' . 'yongo_issue.id as issue_id ' . 'from yongo_issue ' . 'left join issue_comment on yongo_issue.id = issue_comment.issue_id ' . 'left join general_user on general_user.id = issue_comment.user_id ' . 'left join project on project.id = yongo_issue.project_id ' . 'where yongo_issue.id = ' . $issueId . ' ' . 'and issue_comment.issue_id is not null ' . 'order by date_created ' . $order . ', user_id) '; $stmt = UbirimiContainer::get()['db.connection']->prepare($query); $stmt->execute(); $result = $stmt->get_result(); if ($result->num_rows) { if ($resultType == 'array') { $resultArray = array(); while ($data = $result->fetch_array(MYSQLI_ASSOC)) { $resultArray[] = $data; } return $resultArray; } else { return $result; } } else { return null; } }
public function indexAction(Request $request, SessionInterface $session) { Util::checkUserIsLoggedInAndRedirect(); $loggedInUserId = $session->get('user/id'); $issueId = $request->request->get('id'); $timeSpentPost = trim(str_replace(" ", '', $request->request->get('time_spent'))); $dateStartedString = $request->request->get('date_started'); $remainingTime = $request->request->get('remaining'); $comment = $request->request->get('comment'); $dateStarted = \DateTime::createFromFormat('d-m-Y H:i', $dateStartedString); $dateStartedString = date_format($dateStarted, 'Y-m-d H:i'); if (is_numeric($timeSpentPost)) { $timeSpentPost = $timeSpentPost . $session->get('yongo/settings/time_tracking_default_unit'); } if ($timeSpentPost) { $currentDate = Util::getServerCurrentDateTime(); $issueQueryParameters = array('issue_id' => $issueId); $issue = $this->getRepository(Issue::class)->getByParameters($issueQueryParameters, $loggedInUserId); $this->getRepository(WorkLog::class)->addLog($issueId, $loggedInUserId, $timeSpentPost, $dateStartedString, $comment, $currentDate); $remainingTime = $this->getRepository(WorkLog::class)->adjustRemainingEstimate($issue, $timeSpentPost, $remainingTime, $session->get('yongo/settings/time_tracking_hours_per_day'), $session->get('yongo/settings/time_tracking_days_per_week'), $loggedInUserId); $fieldChanges = array(array('time_spent', null, $timeSpentPost), array('remaining_estimate', $issue['remaining_estimate'], $remainingTime)); $this->getRepository(Issue::class)->updateHistory($issue['id'], $loggedInUserId, $fieldChanges, $currentDate); // update the date_updated field $this->getRepository(Issue::class)->updateById($issueId, array('date_updated' => $currentDate), $currentDate); $project = $this->getRepository(YongoProject::class)->getById($issue['issue_project_id']); $issueEventData = array('user_id' => $loggedInUserId, 'comment' => $comment, 'date_started' => $dateStartedString, 'time_spent' => $timeSpentPost); $issueEvent = new IssueEvent($issue, $project, IssueEvent::STATUS_UPDATE, $issueEventData); UbirimiContainer::get()['dispatcher']->dispatch(YongoEvents::YONGO_ISSUE_WORK_LOGGED, $issueEvent); } if (null == $remainingTime || '' == $remainingTime) { $remainingTime = -1; } return new Response($remainingTime); }
public function deleteById($smtpServerId) { $query = 'delete from client_smtp_settings where id = ? limit 1'; $stmt = UbirimiContainer::get()['db.connection']->prepare($query); $stmt->bind_param("i", $smtpServerId); $stmt->execute(); }
public function indexAction(Request $request, SessionInterface $session) { Util::checkUserIsLoggedInAndRedirect(); $menuSelectedCategory = 'svn'; $userId = $request->query->get('id', $request->request->get('id')); $repoId = $request->query->get('repo_id', $request->request->get('repo_id')); $user = $this->getRepository(UbirimiUser::class)->getById($userId); $svnRepo = $this->getRepository(SvnRepository::class)->getById($repoId); $errors = array('empty_password' => false, 'password_mismatch' => false); if ($request->request->has('password') || $request->request->has('password_again')) { $password = Util::cleanRegularInputField($request->request->get('password')); $passwordAgain = Util::cleanRegularInputField($request->request->get('password_again')); if (empty($password)) { $errors['empty_password'] = true; } if ($password != $passwordAgain) { $errors['password_mismatch'] = true; } if (Util::hasNoErrors($errors)) { $this->getRepository(SvnRepository::class)->updateUserPassword($session->get('selected_svn_repo_id'), $userId, $password); $this->getRepository(SvnRepository::class)->updateHtpasswd($session->get('selected_svn_repo_id'), $session->get('client/company_domain')); $this->getRepository(SvnRepository::class)->updateAuthz(); $svnEvent = new SvnHostingEvent($svnRepo['name'], $user, array('password' => $password)); $this->getLogger()->addInfo(sprintf('SVN Change Password for [%s]', $svnRepo['name']), $this->getLoggerContext()); UbirimiContainer::get()['dispatcher']->dispatch(SvnHostingEvents::PASSWORD_UPDATE, $svnEvent); return new Response('1'); } } $menuSelectedCategory = 'svn'; return $this->render(__DIR__ . '/../Resources/views/ChangePassword.php', get_defined_vars()); }
public function getByIssueIdAndProjectId($issueId, $projectId, $resultType = null, $resultColumn = null) { $query = 'SELECT issue_component.id, project_component.name, project_component_id, parent_id ' . 'FROM issue_component ' . 'LEFT JOIN project_component on issue_component.project_component_id = project_component.id ' . 'WHERE issue_id = ? and project_component.project_id = ? ' . 'order by id asc'; $stmt = UbirimiContainer::get()['db.connection']->prepare($query); $stmt->bind_param("ii", $issueId, $projectId); $stmt->execute(); $result = $stmt->get_result(); if ($result->num_rows) { if ($resultType == 'array') { $resultArray = array(); while ($component = $result->fetch_array(MYSQLI_ASSOC)) { if ($resultColumn) { $resultArray[] = $component[$resultColumn]; } else { $resultArray[] = $component; } } return $resultArray; } else { return $result; } } else { return null; } }
public function hasEvent($clientId, $projectId, $issueTypeId) { $workflowUsed = UbirimiContainer::get()['repository']->get(YongoProject::class)->getWorkflowUsedForType($projectId, $issueTypeId); $creationData = UbirimiContainer::get()['repository']->get(Workflow::class)->getDataForCreation($workflowUsed['id']); $eventData = UbirimiContainer::get()['repository']->get(IssueEvent::class)->getByClientIdAndCode($clientId, IssueEvent::EVENT_ISSUE_CREATED_CODE); return UbirimiContainer::get()['repository']->get(WorkflowFunction::class)->hasEvent($creationData['id'], 'event=' . $eventData['id']); }
public function indexAction(Request $request, SessionInterface $session) { Util::checkUserIsLoggedInAndRedirect(); $clientId = UbirimiContainer::get()['session']->get('client/id'); $loggedInUserId = UbirimiContainer::get()['session']->get('user/id'); $workflowStepIdFrom = $request->request->get('step_id_from'); $workflowStepIdTo = $request->request->get('step_id_to'); $workflowId = $request->request->get('workflow_id'); $issueId = $request->request->get('issue_id'); $clientSettings = $this->getRepository(UbirimiClient::class)->getSettings($clientId); $workflowData = $this->getRepository(Workflow::class)->getDataByStepIdFromAndStepIdTo($workflowId, $workflowStepIdFrom, $workflowStepIdTo); $issue = $this->getRepository(Issue::class)->getByParameters(array('issue_id' => $issueId), $loggedInUserId); $canBeExecuted = $this->getRepository(Workflow::class)->checkConditionsByTransitionId($workflowData['id'], $loggedInUserId, $issue); if ($canBeExecuted) { $smtpSettings = $session->get('client/settings/smtp'); if ($smtpSettings) { Email::$smtpSettings = $smtpSettings; } $date = Util::getServerCurrentDateTime(); $this->getRepository(WorkflowFunction::class)->triggerPostFunctions($clientId, $issue, $workflowData, array(), $loggedInUserId, $date); // update the date_updated field $this->getRepository(Issue::class)->updateById($issueId, array('date_updated' => $date), $date); return new Response('success'); } else { return new Response('can_not_be_executed'); } }
public function indexAction(Request $request, SessionInterface $session) { $timeTrackingDefaultUnit = $this->getRepository(UbirimiClient::class)->getYongoSetting($request->get('api_client_id'), 'time_tracking_default_unit'); $clientSettings = $this->getRepository(UbirimiClient::class)->getSettings($request->get('api_client_id')); $issue = UbirimiContainer::get()['issue']->save(array('id' => $request->get('projectId')), array('resolution' => $request->get('resolution'), 'priority' => $request->get('priority'), 'type' => $request->get('type'), 'assignee' => $request->get('assignee'), 'summary' => $request->get('summary'), 'description' => $request->get('description'), 'environment' => $request->get('environment'), 'reporter' => $request->get('api_user_id'), 'due_date' => $request->get('due_date')), null, $timeTrackingDefaultUnit, $request->get('projectId'), array(), array(), $clientSettings, $request->get('api_user_id'), $request->get('api_client_id')); return new JsonResponse($issue); }
public function addConditionString($transitionId, $stringText) { $q = 'update workflow_condition_data set definition_data = CONCAT(definition_data, ?) where workflow_data_id = ? limit 1'; $stmt = UbirimiContainer::get()['db.connection']->prepare($q); $stmt->bind_param("si", $stringText, $transitionId); $stmt->execute(); }
public function indexAction(Request $request, SessionInterface $session) { if ($request->request->has('retrieve')) { $errorNotInClientDomain = false; $emailAddressNotExists = false; $httpHOST = Util::getHttpHost(); $address = Util::cleanRegularInputField($request->request->get('address')); $exists = Util::checkEmailAddressExistence($address); if ($exists) { $baseURL = Util::getHttpHost(); $userData = $this->getRepository(UbirimiUser::class)->getByEmailAddressAndBaseURL($address, $baseURL); if ($userData) { $password = Util::updatePasswordForUserId($userData['id']); $event = new UbirimiEvent(array('email' => $address, 'password' => $password)); UbirimiContainer::get()['dispatcher']->dispatch(UbirimiEvents::PASSWORD_RECOVER, $event); return new RedirectResponse('/recover-password/response'); } else { $errorNotInClientDomain = true; } } else { $emailAddressNotExists = true; } return $this->render(__DIR__ . '/../Resources/views/_passwordRecoverForm.php', get_defined_vars()); } else { if ($request->request->has('go_back')) { return new RedirectResponse('/'); } } }
public function importUsers($repositoryName, $user) { if ($this->session->get('client/settings/smtp')) { Email::$smtpSettings = $this->session->get('client/settings/smtp'); UbirimiContainer::get()['repository']->get(Email::class)->sendNewUserRepositoryNotificationEmail($this->session->get('client/id'), $user['first_name'], $user['last_name'], $user['username'], null, $user['email'], $repositoryName); } }
public function indexAction(Request $request, SessionInterface $session) { Util::checkUserIsLoggedInAndRedirect(); $loggedInUserId = $session->get('user/id'); $workLogId = $request->request->get('id'); $issueId = $request->request->get('issue_id'); $remainingTime = $request->request->get('remaining'); $workLog = $this->getRepository(WorkLog::class)->getById($workLogId); $timeSpent = $workLog['time_spent']; $this->getRepository(WorkLog::class)->deleteById($workLogId); $issueQueryParameters = array('issue_id' => $issueId); $issue = $this->getRepository(Issue::class)->getByParameters($issueQueryParameters, $session->get('user/id')); $previousEstimate = $issue['remaining_estimate']; if ($remainingTime == 'automatic') { $remainingTime = '+' . $timeSpent; } $remainingTime = $this->getRepository(WorkLog::class)->adjustRemainingEstimate($issue, $timeSpent, $remainingTime, $session->get('yongo/settings/time_tracking_hours_per_day'), $session->get('yongo/settings/time_tracking_days_per_week'), $session->get('user/id')); $currentDate = Util::getServerCurrentDateTime(); $fieldChanges = array(array('time_spent', $workLog['time_spent'], 0), array('remaining_estimate', $previousEstimate, $remainingTime), array('worklog_time_spent', $workLog['time_spent'], null)); $this->getRepository(Issue::class)->updateHistory($issue['id'], $session->get('user/id'), $fieldChanges, $currentDate); // update the date_updated field $this->getRepository(Issue::class)->updateById($issueId, array('date_updated' => $currentDate), $currentDate); // send the email notification $project = $this->getRepository(YongoProject::class)->getById($issue['issue_project_id']); $issueEventData = array('user_id' => $loggedInUserId, 'remaining_estimate' => $remainingTime, 'time_spent' => $workLog['time_spent']); $issueEvent = new IssueEvent($issue, $project, IssueEvent::STATUS_UPDATE, $issueEventData); UbirimiContainer::get()['dispatcher']->dispatch(YongoEvents::YONGO_ISSUE_WORK_LOG_DELETED, $issueEvent); return new Response($remainingTime); }
public function indexAction(Request $request, SessionInterface $session) { Util::checkUserIsLoggedInAndRedirect(); $loggedInUserId = $session->get('user/id'); $issuesPerPage = $session->get('user/issues_per_page'); $searchParameters = array(); $parseURLData = null; $getFilter = isset($_GET['filter']) ? $_GET['filter'] : null; $getPage = isset($_GET['page']) ? $_GET['page'] : 1; $getSortColumn = isset($_GET['sort']) ? $_GET['sort'] : 'created'; $getSortOrder = isset($_GET['order']) ? $_GET['order'] : 'desc'; $getSearchQuery = isset($_GET['search_query']) ? $_GET['search_query'] : null; $getSummaryFlag = isset($_GET['summary_flag']) ? $_GET['summary_flag'] : null; $getDescriptionFlag = isset($_GET['description_flag']) ? $_GET['description_flag'] : null; $getCommentsFlag = isset($_GET['comments_flag']) ? $_GET['comments_flag'] : null; $getProjectIds = isset($_GET['project']) ? explode('|', $_GET['project']) : null; $getAssigneeIds = isset($_GET['assignee']) ? explode('|', $_GET['assignee']) : null; $getReportedIds = isset($_GET['reporter']) ? explode('|', $_GET['reporter']) : null; $getIssueTypeIds = isset($_GET['type']) ? explode('|', $_GET['type']) : null; $getIssueStatusIds = isset($_GET['status']) ? explode('|', $_GET['status']) : null; $getIssuePriorityIds = isset($_GET['priority']) ? explode('|', $_GET['priority']) : null; $getProjectComponentIds = isset($_GET['component']) ? explode('|', $_GET['component']) : null; $getProjectVersionIds = isset($_GET['version']) ? explode('|', $_GET['version']) : null; $getIssueResolutionIds = isset($_GET['resolution']) ? explode('|', $_GET['resolution']) : null; // date filters $getDateDueAfter = isset($_GET['date_due_after']) ? $_GET['date_due_after'] : null; $getDateDueBefore = isset($_GET['date_due_before']) ? $_GET['date_due_before'] : null; $getDateCreatedAfter = isset($_GET['date_created_after']) ? $_GET['date_created_after'] : null; $getDateCreatedBefore = isset($_GET['date_created_before']) ? $_GET['date_created_before'] : null; $getSearchParameters = array('search_query' => $getSearchQuery, 'summary_flag' => $getSummaryFlag, 'description_flag' => $getDescriptionFlag, 'comments_flag' => $getCommentsFlag, 'project' => $getProjectIds, 'assignee' => $getAssigneeIds, 'reporter' => $getReportedIds, 'filter' => $getFilter, 'type' => $getIssueTypeIds, 'status' => $getIssueStatusIds, 'priority' => $getIssuePriorityIds, 'component' => $getProjectComponentIds, 'version' => $getProjectVersionIds, 'resolution' => $getIssueResolutionIds, 'sort' => $getSortColumn, 'sort_order' => $getSortOrder, 'render_checkbox' => true, 'checkbox_in_header' => true, 'date_due_after' => $getDateDueAfter, 'date_due_before' => $getDateDueBefore, 'date_created_after' => $getDateCreatedAfter, 'date_created_before' => $getDateCreatedBefore); $parseURLData = parse_url($_SERVER['REQUEST_URI']); if (isset($parseURLData['query'])) { UbirimiContainer::get()['session']->set('bulk_change_choose_issue_query_url', $parseURLData['query']); if (Util::searchQueryNotEmpty($getSearchParameters)) { $issues = $this->getRepository(Issue::class)->getByParameters($getSearchParameters, $loggedInUserId, null, $loggedInUserId); $issuesCount = $issues->num_rows; $getSearchParameters['link_to_page'] = '/yongo/issue/printable-list'; } } $columns = array('code', 'summary', 'priority', 'status', 'created', 'updated', 'reporter', 'assignee'); $menuSelectedCategory = 'issue'; $errorNoIssuesSelected = false; if ($request->request->has('next_step_2')) { $issueIdsArray = array(); foreach ($_POST as $key => $value) { if (substr($key, 0, 15) == "issue_checkbox_") { $issueIdsArray[] = (int) str_replace("issue_checkbox_", "", $key); } } if (count($issueIdsArray)) { UbirimiContainer::get()['session']->set('bulk_change_issue_ids', $issueIdsArray); return new RedirectResponse('/yongo/issue/bulk-operation'); } else { $errorNoIssuesSelected = true; } } $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_YONGO_NAME . ' / Bulk: Choose Issues'; return $this->render(__DIR__ . '/../../../Resources/views/issue/bulk/ChooseIssue.php', get_defined_vars()); }
public function create($organizationId, $userId) { $query = "INSERT INTO help_customer(help_organization_id, user_id) VALUES (?, ?)"; $stmt = UbirimiContainer::get()['db.connection']->prepare($query); $stmt->bind_param("ii", $organizationId, $userId); $stmt->execute(); return UbirimiContainer::get()['db.connection']->insert_id; }
public function deleteByProjectId($projectId) { $components = UbirimiContainer::get()['repository']->get(YongoProject::class)->getComponents($projectId); while ($components && ($component = $components->fetch_array(MYSQLI_ASSOC))) { $componentId = $component['id']; ProjectComponent::deleteById($componentId); } }
public function addPosition($workflowId, $data) { for ($i = 0; $i < count($data); $i++) { $q = 'insert into workflow_position(workflow_id, workflow_step_id, top_position, left_position) ' . 'values(?, ?, ?, ?)'; $stmt = UbirimiContainer::get()['db.connection']->prepare($q); $stmt->bind_param("iiii", $workflowId, $data[$i][0], $data[$i][1], $data[$i][2]); $stmt->execute(); } }
public function indexAction(Request $request, SessionInterface $session) { Util::checkUserIsLoggedInAndRedirect(); $clientId = UbirimiContainer::get()['session']->get('client/id'); $issueId = $request->get('id'); $users = UbirimiContainer::get()['repository']->get(UbirimiUser::class)->getByClientId($clientId, 0); $subdomain = Util::getSubdomain(); return $this->render(__DIR__ . '/../../Resources/views/issue/ShareDialog.php', get_defined_vars()); }
public function register(\Pimple $pimple) { $pimple['db.connection'] = $pimple->share(function () { $databaseConnector = new DatabaseConnectorService(); return $databaseConnector->getConnection(); }); $pimple['repository'] = $pimple->share(function () { return new RepositoryService(); }); $pimple['api.auth'] = $pimple->share(function ($pimple) { $basicAuthenticationService = new BasicAuthenticationService(); $basicAuthenticationService->setPasswordService($pimple['password']); return $basicAuthenticationService; }); $pimple['password'] = $pimple->share(function () { return new PasswordService(); }); $pimple['dispatcher'] = $pimple->share(function () { return new EventDispatcher(); }); $pimple['logger'] = $pimple->share(function () { $logger = new Logger('ubirimi.activity'); $IntrospectionProcessor = new IntrospectionProcessor(); $webProcessor = new WebProcessor(); $logger->pushHandler(new StreamHandler(UbirimiContainer::get()['log.path'], Logger::DEBUG)); $logger->pushHandler(new \DbMonologHandler(), Logger::DEBUG); $logger->pushProcessor($IntrospectionProcessor); $logger->pushProcessor($webProcessor); return $logger; }); $pimple['email'] = $pimple->share(function ($pimple) { return new EmailService($pimple['session']); }); $pimple['client'] = $pimple->share(function ($pimple) { return new ClientService(); }); $pimple['user'] = $pimple->share(function ($pimple) { return new UserService($pimple['session']); }); $pimple['login.time'] = $pimple->share(function ($pimple) { return new LoginTimeService(); }); $pimple['session'] = $pimple->share(function () { $lastDot = strrpos($_SERVER['SERVER_NAME'], '.'); $secondToLastDot = strrpos($_SERVER['SERVER_NAME'], '.', $lastDot - strlen($_SERVER['SERVER_NAME']) - 1); $storage = new NativeSessionStorage(array('cookie_domain' => substr($_SERVER['SERVER_NAME'], $secondToLastDot)), new NativeFileSessionHandler()); return new Session($storage, new NamespacedAttributeBag(), new AutoExpireFlashBag()); }); $pimple['warmup'] = $pimple->share(function ($pimple) { return new WarmUpService($pimple['session']); }); $pimple['savant'] = $pimple->share(function () { return new \Savant3(array('template_path' => array(__DIR__ . '/../Yongo/Resources/views/email/', __DIR__ . '/../GeneralSettings/Resources/views/email/', __DIR__ . '/../Calendar/Resources/views/email/', __DIR__ . '/../SvnHosting/Resources/views/email/', __DIR__ . '/../Resources/views/email'))); }); }
public function indexAction(Request $request, SessionInterface $session) { Util::checkUserIsLoggedInAndRedirect(); $clientId = $session->get('client/id'); $session->set('selected_product_id', -1); $filterGroupId = $request->get('group_id'); $users = UbirimiContainer::get()['repository']->get(UbirimiClient::class)->getUsers($clientId, $filterGroupId, null, 1); $menuSelectedCategory = 'general_user'; $sectionPageTitle = $session->get('client/settings/title_name') . ' / GeneralSettings Settings / Users'; return $this->render(__DIR__ . '/../Resources/views/ListUser.php', get_defined_vars()); }
public function shareEvent($event, $userThatShares, $usersToShareWith, $noteContent) { $smtpSettings = UbirimiContainer::get()['session']->get('client/settings/smtp'); if ($smtpSettings) { Email::$smtpSettings = $smtpSettings; for ($i = 0; $i < count($usersToShareWith); $i++) { $user = UbirimiContainer::get()['repository']->get(UbirimiUser::class)->getById($usersToShareWith[$i]); UbirimiContainer::get()['repository']->get(Email::class)->shareEvent($this->session->get('client/id'), $event, $userThatShares, $user['email'], $noteContent); } } }
public function deleteById($versionId) { $query = 'delete from issue_version where project_version_id = ?'; $stmt = UbirimiContainer::get()['db.connection']->prepare($query); $stmt->bind_param("i", $versionId); $stmt->execute(); $query = 'delete from project_version where id = ?'; $stmt = UbirimiContainer::get()['db.connection']->prepare($query); $stmt->bind_param("i", $versionId); $stmt->execute(); }
public function indexAction(Request $request, SessionInterface $session) { Util::checkUserIsLoggedInAndRedirect(); $issueId = $request->request->get('id'); $noteContent = $request->request->get('note'); $userIds = $request->request->get('user_id'); $issueQueryParameters = array('issue_id' => $issueId); $issue = $this->getRepository(Issue::class)->getByParameters($issueQueryParameters); $issueEvent = new IssueEvent($issue, null, IssueEvent::STATUS_UPDATE, array('userIds' => $userIds, 'noteContent' => $noteContent)); UbirimiContainer::get()['dispatcher']->dispatch(YongoEvents::YONGO_ISSUE_SHARE_EMAIL, $issueEvent); }
public static function add(ProjectEntity $project, $userId) { $currentDate = $project->getDateCreated(); $projectId = UbirimiContainer::get()['repository']->get(YongoProject::class)->add($project->getClientId(), $project->getIssueTypeSchemeId(), $project->getIssueTypeScreenSchemeId(), $project->getIssueTypeFieldConfigurationId(), $project->getWorkflowSchemeId(), $project->getPermissionSchemeId(), $project->getNotificationSchemeId(), $project->getLeadId(), $project->getName(), $project->getCode(), $project->getDescription(), $project->getProjectCategoryId(), $project->getHelpDeskEnabledFlag(), $project->getDateCreated()); UbirimiContainer::get()['repository']->get(YongoProject::class)->addDefaultUsers($project->getClientId(), $projectId, $currentDate); UbirimiContainer::get()['repository']->get(YongoProject::class)->addDefaultGroups($project->getClientId(), $projectId, $currentDate); if ($project->getHelpDeskEnabledFlag()) { UbirimiContainer::get()['repository']->get(YongoProject::class)->addDefaultInitialDataForHelpDesk($project->getClientId(), $projectId, $userId, $currentDate); } return $projectId; }
public function getAll() { $query = "SELECT * " . "FROM sys_operation"; $stmt = UbirimiContainer::get()['db.connection']->prepare($query); $stmt->execute(); $result = $stmt->get_result(); if ($result->num_rows) { return $result; } else { return null; } }
public function getAll() { $query = 'SELECT general_mail_queue.from_address, general_mail_queue.to_address, general_mail_queue.subject, general_mail_queue.content, general_mail_queue.date_created, ' . 'client.company_domain ' . 'FROM general_mail_queue ' . 'left join client on client.id = general_mail_queue.client_id'; $stmt = UbirimiContainer::get()['db.connection']->prepare($query); $stmt->execute(); $result = $stmt->get_result(); if ($result->num_rows) { return $result; } else { return null; } }