public function indexAction(Request $request, SessionInterface $session)
 {
     $clientId = $session->get('client/id');
     $helpdeskFlag = 0;
     $loggedInUser = Util::checkUserIsLoggedIn();
     if ($loggedInUser) {
         if ($session->get('selected_product_id') == SystemProduct::SYS_PRODUCT_HELP_DESK) {
             $helpdeskFlag = 1;
         }
     }
     $projectId = $request->request->get('id');
     $date = date("Y-m-d", strtotime("-1 month"));
     $date = date('Y-m-d', strtotime("+1 day", strtotime($date)));
     $dateWithoutYear = date("d M", strtotime("-1 month"));
     $currentDate = date("Y-m-d");
     $result = array();
     while (strtotime($date) <= strtotime($currentDate)) {
         $countAllIssues = $this->getRepository(YongoProject::class)->getTotalIssuesPreviousDate($clientId, $projectId, $date, $helpdeskFlag);
         $resolvedCount = $this->getRepository(YongoProject::class)->getTotalIssuesResolvedOnDate($clientId, $projectId, $date, $helpdeskFlag);
         $result[] = array($dateWithoutYear, $countAllIssues, $resolvedCount);
         $dateWithoutYear = date('d M', strtotime("+1 day", strtotime($date)));
         $date = date('Y-m-d', strtotime("+1 day", strtotime($date)));
     }
     return new JsonResponse($result);
 }
 /**
  * @param \Symfony\Component\Form\FormView $view
  * @param \Symfony\Component\Form\FormInterface $form
  * @param array $options
  */
 public function buildView(FormView $view, FormInterface $form, array $options)
 {
     if ($options['reload'] && !$options['as_url']) {
         throw new \InvalidArgumentException('GregwarCaptcha: The reload option cannot be set without as_url, see the README for more information');
     }
     $sessionKey = sprintf('gcb_%s', $form->getName());
     $isHuman = false;
     if ($options['humanity'] > 0) {
         $humanityKey = sprintf('%s_humanity', $sessionKey);
         if ($this->session->get($humanityKey, 0) > 0) {
             $isHuman = true;
         }
     }
     if ($options['as_url']) {
         $keys = $this->session->get($options['whitelist_key'], array());
         if (!in_array($sessionKey, $keys)) {
             $keys[] = $sessionKey;
         }
         $this->session->set($options['whitelist_key'], $keys);
         $options['session_key'] = $sessionKey;
     }
     $view->vars = array_merge($view->vars, array('captcha_width' => $options['width'], 'captcha_height' => $options['height'], 'reload' => $options['reload'], 'image_id' => uniqid('captcha_'), 'captcha_code' => $this->generator->getCaptchaCode($options), 'value' => '', 'is_human' => $isHuman));
     $persistOptions = array();
     foreach (array('phrase', 'width', 'height', 'distortion', 'length', 'quality', 'background_color', 'text_color') as $key) {
         $persistOptions[$key] = $options[$key];
     }
     $this->session->set($sessionKey, $persistOptions);
 }
Example #3
0
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $emptyName = false;
     $alreadyExists = false;
     if ($request->request->has('new_role')) {
         $name = Util::cleanRegularInputField($request->request->get('name'));
         $description = Util::cleanRegularInputField($request->request->get('description'));
         if (empty($name)) {
             $emptyName = true;
         }
         $role = $this->getRepository(Role::class)->getByName($session->get('client/id'), $name);
         if ($role) {
             $alreadyExists = true;
         }
         if (!$emptyName && !$alreadyExists) {
             $date = Util::getServerCurrentDateTime();
             $this->getRepository(Role::class)->add($session->get('client/id'), $name, $description, $date);
             $this->getLogger()->addInfo('ADD Yongo Project Role ' . $name, $this->getLoggerContext());
             return new RedirectResponse('/yongo/administration/roles');
         }
     }
     $menuSelectedCategory = 'user';
     $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_YONGO_NAME . ' / Create Role';
     return $this->render(__DIR__ . '/../../../Resources/views/administration/role/Add.php', get_defined_vars());
 }
Example #4
0
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $menuSelectedCategory = 'system';
     $emptyName = false;
     $eventId = $request->get('id');
     $event = $this->getRepository(IssueEvent::class)->getById($eventId);
     if ($event['client_id'] != $session->get('client/id')) {
         return new RedirectResponse('/general-settings/bad-link-access-denied');
     }
     if ($request->request->has('edit_event')) {
         $name = Util::cleanRegularInputField($request->request->get('name'));
         $description = Util::cleanRegularInputField($request->request->get('description'));
         if (empty($name)) {
             $emptyName = true;
         }
         if (!$emptyName) {
             $currentDate = Util::getServerCurrentDateTime();
             $this->getRepository(IssueEvent::class)->updateById($eventId, $name, $description, $currentDate);
             $this->getLogger()->addInfo('UPDATE Yongo Event ' . $name, $this->getLoggerContext());
             return new RedirectResponse('/yongo/administration/events');
         }
     }
     $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_YONGO_NAME . ' / Update Event';
     return $this->render(__DIR__ . '/../../../Resources/views/administration/event/edit.php', get_defined_vars());
 }
 /**
  * @return \PHPSC\Conference\Domain\Entity\User
  */
 public function getLoggedUser()
 {
     if (!$this->isLogged() && $this->session->has('loggedUser')) {
         $this->loggedUser = $this->userManager->getById($this->session->get('loggedUser'));
     }
     return $this->loggedUser;
 }
 public function retrieve($id)
 {
     if (!is_string($id)) {
         throw InvalidArgumentException::invalidType('string', 'uuid', $id);
     }
     return $this->session->get(sprintf('%s:%s', $this->namespace, $id));
 }
Example #7
0
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $emptyPriorityName = false;
     $priorityExists = false;
     if ($request->request->has('new_priority')) {
         $name = Util::cleanRegularInputField($request->request->get('name'));
         $description = Util::cleanRegularInputField($request->request->get('description'));
         $color = Util::cleanRegularInputField($request->request->get('color'));
         if (empty($name)) {
             $emptyPriorityName = true;
         }
         // check for duplication
         $priority = $this->getRepository(IssueSettings::class)->getByName($session->get('client/id'), 'priority', mb_strtolower($name));
         if ($priority) {
             $priorityExists = true;
         }
         if (!$priorityExists && !$emptyPriorityName) {
             $iconName = 'generic.png';
             $currentDate = Util::getServerCurrentDateTime();
             $this->getRepository(IssueSettings::class)->create('issue_priority', $session->get('client/id'), $name, $description, $iconName, $color, $currentDate);
             $this->getLogger()->addInfo('ADD Yongo Issue Priority ' . $name, $this->getLoggerContext());
             return new RedirectResponse('/yongo/administration/issue/priorities');
         }
     }
     $menuSelectedCategory = 'issue';
     $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_YONGO_NAME . ' / Create Issue Priority';
     return $this->render(__DIR__ . '/../../../../Resources/views/administration/issue/priority/Add.php', get_defined_vars());
 }
Example #8
0
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $emptyName = false;
     $duplicateName = false;
     if ($request->request->has('add_project_category')) {
         $name = Util::cleanRegularInputField($request->request->get('name'));
         $description = Util::cleanRegularInputField($request->request->get('description'));
         if (empty($name)) {
             $emptyName = true;
         } else {
             $data = $this->getRepository(ProjectCategory::class)->getByName($name, null, $session->get('client/id'));
             if ($data) {
                 $duplicateName = true;
             }
         }
         if (!$emptyName && !$duplicateName) {
             $projectCategory = new ProjectCategory($session->get('client/id'), $name, $description);
             $currentDate = Util::getServerCurrentDateTime();
             $projectCategory->save($currentDate);
             $this->getLogger()->addInfo('ADD Yongo Project Category ' . $name, $this->getLoggerContext());
             return new RedirectResponse('/yongo/administration/project/categories');
         }
     }
     $menuSelectedCategory = 'project';
     $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_YONGO_NAME . ' / Create Project Category';
     return $this->render(__DIR__ . '/../../../../Resources/views/administration/project/category/Add.php', get_defined_vars());
 }
Example #9
0
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $emptyName = false;
     $workflowExists = false;
     $workflowIssueTypeSchemes = $this->getRepository(IssueTypeScheme::class)->getByClientId($session->get('client/id'), 'workflow');
     if ($request->request->has('new_workflow')) {
         $name = Util::cleanRegularInputField($request->request->get('name'));
         $description = Util::cleanRegularInputField($request->request->get('description'));
         if (empty($name)) {
             $emptyName = true;
         }
         $duplicateWorkflow = $this->getRepository(Workflow::class)->getByClientIdAndName($session->get('client/id'), mb_strtolower($name));
         if ($duplicateWorkflow) {
             $workflowExists = true;
         }
         if (!$emptyName && !$workflowExists) {
             $workflowIssueTypeSchemeId = $request->request->get('workflow_issue_type_scheme');
             $currentDate = $date = Util::getServerCurrentDateTime();
             $workflowId = $this->getRepository(Workflow::class)->createNewMetaData($session->get('client/id'), $workflowIssueTypeSchemeId, $name, $description, $currentDate);
             $this->getRepository(Workflow::class)->createInitialData($session->get('client/id'), $workflowId);
             $this->getLogger()->addInfo('ADD Yongo Workflow ' . $name, $this->getLoggerContext());
             return new RedirectResponse('/yongo/administration/workflows');
         }
     }
     $menuSelectedCategory = 'issue';
     $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_YONGO_NAME . ' / Create Workflow';
     return $this->render(__DIR__ . '/../../../Resources/views/administration/workflow/Add.php', get_defined_vars());
 }
Example #10
0
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $clientId = $session->get('client/id');
     $loggedInUserId = $session->get('user/id');
     $stepPropertyId = $request->get('id');
     $stepProperty = $this->getRepository(Workflow::class)->getStepPropertyById($stepPropertyId);
     $step = $this->getRepository(Workflow::class)->getStepById($stepProperty['workflow_step_id']);
     $stepId = $step['id'];
     $workflowId = $step['workflow_id'];
     $workflowMetadata = $this->getRepository(Workflow::class)->getMetaDataById($workflowId);
     $allProperties = $this->getRepository(Workflow::class)->getSystemWorkflowProperties();
     $emptyValue = false;
     $duplicateKey = false;
     $value = $stepProperty['value'];
     if ($request->request->has('edit_property')) {
         $keyId = Util::cleanRegularInputField($request->request->get('key'));
         $value = Util::cleanRegularInputField($request->request->get('value'));
         if (empty($value)) {
             $emptyValue = true;
         }
         if (!$emptyValue) {
             $duplicateKey = $this->getRepository(Workflow::class)->getStepKeyByStepIdAndKeyId($stepId, $keyId, $stepProperty['id']);
             if (!$duplicateKey) {
                 $currentDate = Util::getServerCurrentDateTime();
                 $this->getRepository(Workflow::class)->updateStepPropertyById($stepPropertyId, $keyId, $value, $currentDate);
                 $this->getLogger()->addInfo('UPDATE Yongo Workflow Step Property', $this->getLoggerContext());
                 return new RedirectResponse('/yongo/administration/workflow/view-step-properties/' . $stepId);
             }
         }
     }
     $menuSelectedCategory = 'issue';
     $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_YONGO_NAME . ' / Update Workflow Step Property';
     return $this->render(__DIR__ . '/../../../../../Resources/views/administration/workflow/step/property/Edit.php', get_defined_vars());
 }
Example #11
0
 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('');
 }
Example #12
0
 public function indexAction(Request $request, SessionInterface $session)
 {
     $loggedInUserId = null;
     if (Util::checkUserIsLoggedIn()) {
         $loggedInUserId = $session->get('user/id');
         $session->set('selected_product_id', SystemProduct::SYS_PRODUCT_DOCUMENTADOR);
         $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_DOCUMENTADOR_NAME . ' / Dashboard';
     } else {
         $httpHOST = Util::getHttpHost();
         $clientId = $this->getRepository(UbirimiClient::class)->getByBaseURL($httpHOST, 'array', 'id');
         $sectionPageTitle = SystemProduct::SYS_PRODUCT_DOCUMENTADOR_NAME . ' / Dashboard';
     }
     $type = $request->get('type');
     $menuSelectedCategory = 'documentator';
     if ($type == 'spaces') {
         if (Util::checkUserIsLoggedIn()) {
             $spaces = $this->getRepository(Space::class)->getByClientId($session->get('client/id'), 1);
         } else {
             $spaces = $this->getRepository(Space::class)->getByClientIdAndAnonymous($session->get('client/id'));
         }
     } else {
         if ($type == 'pages') {
             $pages = $this->getRepository(Entity::class)->getFavouritePagesByClientIdAndUserId($session->get('client/id'), $loggedInUserId);
         }
     }
     return $this->render(__DIR__ . '/../Resources/views/Dashboard.php', get_defined_vars());
 }
 public function indexAction(Request $request, SessionInterface $session)
 {
     if (Util::checkUserIsLoggedIn()) {
         $clientId = $session->get('client/id');
         $loggedInUserId = $session->get('user/id');
     } else {
         $clientId = $this->getRepository(UbirimiClient::class)->getClientIdAnonymous();
         $loggedInUserId = null;
     }
     $projectId = $request->request->get('id');
     $selectedProjectId = $projectId;
     if ($projectId == -1) {
         $projects = array();
         $projectsForBrowsing = $this->getRepository(UbirimiClient::class)->getProjectsByPermission($clientId, $loggedInUserId, Permission::PERM_BROWSE_PROJECTS, 'array');
         for ($i = 0; $i < count($projectsForBrowsing); $i++) {
             $projects[] = $projectsForBrowsing[$i]['id'];
         }
     } else {
         $projects = array((int) $projectId);
     }
     $issueQueryParameters = array('issues_per_page' => 20, 'resolution' => array(-2), 'sort' => 'code', 'sort_order' => 'desc', 'project' => $projects);
     if ($loggedInUserId) {
         $issueQueryParameters['not_assignee'] = $loggedInUserId;
     }
     $issuesUnresolvedOthers = $this->getRepository(Issue::class)->getByParameters($issueQueryParameters, $loggedInUserId, null, $loggedInUserId);
     $renderParameters = array('issues' => $issuesUnresolvedOthers, 'render_checkbox' => false, 'show_header' => true);
     $renderColumns = array('code', 'summary', 'priority', 'assignee');
     $projects = $this->getRepository(UbirimiClient::class)->getProjectsByPermission($clientId, $loggedInUserId, Permission::PERM_BROWSE_PROJECTS, 'array');
     $projectIdsNames = array();
     for ($i = 0; $i < count($projects); $i++) {
         $projectIdsNames[] = array($projects[$i]['id'], $projects[$i]['name']);
     }
     $clientSettings = $session->get('client/settings');
     return $this->render(__DIR__ . '/../../Resources/views/charts/ViewUnresolvedOthers.php', get_defined_vars());
 }
 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());
 }
Example #15
0
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $calendarId = $request->get('id');
     $calendar = $this->getRepository(UbirimiCalendar::class)->getById($calendarId);
     $defaultReminders = $this->getRepository(UbirimiCalendar::class)->getReminders($calendarId);
     if ($calendar['client_id'] != $session->get('client/id')) {
         return new RedirectResponse('/general-settings/bad-link-access-denied');
     }
     if ($request->request->has('edit_calendar_settings')) {
         $date = Util::getServerCurrentDateTime();
         $this->getRepository(UbirimiCalendar::class)->deleteReminders($calendarId);
         $this->getRepository(UbirimiCalendar::class)->deleteSharesByCalendarId($calendarId);
         // reminder information
         foreach ($request->request as $key => $value) {
             if (strpos($key, 'reminder_type_') !== false) {
                 $indexReminder = str_replace('reminder_type_', '', $key);
                 $reminderType = Util::cleanRegularInputField($request->request->get($key));
                 $reminderValue = $request->request->get('value_reminder_' . $indexReminder);
                 $reminderPeriod = $request->request->get('reminder_period_' . $indexReminder);
                 // add the reminder
                 if (is_numeric($reminderValue)) {
                     $this->getRepository(UbirimiCalendar::class)->addReminder($calendarId, $reminderType, $reminderPeriod, $reminderValue);
                 }
             }
         }
         $this->getLogger()->addInfo('UPDATE Calendar Default Reminders ' . $calendar['name'], $this->getLoggerContext());
         return new RedirectResponse('/calendar/calendars');
     }
     $menuSelectedCategory = 'calendar';
     $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_CALENDAR_NAME . ' / Calendar: ' . $calendar['name'] . ' / Settings';
     return $this->render(__DIR__ . '/../Resources/views/Settings.php', get_defined_vars());
 }
Example #16
0
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $emptyName = false;
     $duplicateName = false;
     $name = Util::cleanRegularInputField($request->request->get('name'));
     $description = Util::cleanRegularInputField($request->request->get('description'));
     if (empty($name)) {
         $emptyName = true;
     }
     $notebookSameName = $this->getRepository(Notebook::class)->getByName($session->get('user/id'), $name);
     if ($notebookSameName) {
         $duplicateName = true;
     }
     if (!$emptyName && !$duplicateName) {
         $currentDate = Util::getServerCurrentDateTime();
         $defaultFlag = 0;
         // get the default notebook
         $defaultNotebook = $this->getRepository(Notebook::class)->getDefaultByUserId($session->get('user/id'));
         if (!$defaultNotebook) {
             $defaultFlag = 1;
         }
         $notebookId = $this->getRepository(Notebook::class)->save($session->get('user/id'), $name, $description, $defaultFlag, $currentDate);
         $this->getLogger()->addInfo('ADD QUICK NOTES notebook ' . $name, $this->getLoggerContext());
     }
     return new Response('');
 }
Example #17
0
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $issueTypes = FieldType::getAll($session->get('client/id'));
     $projects = $this->getRepository(YongoProject::class)->getByClientId($session->get('client/id'));
     $fieldTypeCode = $request->get('type');
     $emptyName = false;
     $duplicateName = false;
     if ($request->request->has('finish_custom_field')) {
         $name = Util::cleanRegularInputField($request->request->get('name'));
         $description = Util::cleanRegularInputField($request->request->get('description'));
         $issueType = $request->request->get('issue_type');
         $project = $request->request->get('project');
         $fieldType = $this->getRepository(FieldType::class)->getByCode($fieldTypeCode);
         $fieldTypeId = $fieldType['id'];
         if (empty($name)) {
             $emptyName = true;
         } else {
             // check for duplicate name
             $duplicateField = $this->getRepository(CustomField::class)->getByNameAndType($session->get('client/id'), $name, $fieldTypeId);
             if ($duplicateField) {
                 $duplicateName = true;
             }
         }
         if (!$emptyName && !$duplicateName) {
             $date = Util::getServerCurrentDateTime();
             $fieldId = CustomField::create($session->get('client/id'), $fieldTypeCode, $name, $description, $issueType, $project, $date);
             $this->getLogger()->addInfo('ADD Yongo Custom Field ' . $name, $this->getLoggerContext());
             return new RedirectResponse('/yongo/administration/custom-field/edit-field-screen/' . $fieldId);
         }
     }
     $menuSelectedCategory = 'issue';
     $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_YONGO_NAME . ' / Create Custom Field Data';
     return $this->render(__DIR__ . '/../../../Resources/views/administration/field/AddData.php', get_defined_vars());
 }
Example #18
0
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $Id = $request->get('id');
     $issueType = $this->getRepository(IssueType::class)->getById($Id);
     if ($issueType['client_id'] != $session->get('client/id')) {
         return new RedirectResponse('/general-settings/bad-link-access-denied');
     }
     $emptyName = false;
     $typeExists = false;
     if ($request->request->has('edit_type')) {
         $name = Util::cleanRegularInputField($request->request->get('name'));
         $description = Util::cleanRegularInputField($request->request->get('description'));
         if (empty($name)) {
             $emptyName = true;
         }
         // check for duplication
         $type = $this->getRepository(IssueSettings::class)->getByName($session->get('client/id'), 'type', mb_strtolower($name), $Id);
         if ($type) {
             $typeExists = true;
         }
         if (!$typeExists && !$emptyName) {
             $currentDate = Util::getServerCurrentDateTime();
             $this->getRepository(IssueType::class)->updateById($Id, $name, $description, $currentDate);
             $this->getLogger()->addInfo('UPDATE Yongo Issue Type ' . $name, $this->getLoggerContext());
             return new RedirectResponse('/yongo/administration/issue-sub-tasks');
         }
     }
     $menuSelectedCategory = 'issue';
     $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_YONGO_NAME . ' / Update Issue Type';
     return $this->render(__DIR__ . '/../../../../Resources/views/administration/issue/type/Edit.php', get_defined_vars());
 }
Example #19
0
 public function indexAction(Request $request, SessionInterface $session)
 {
     if (Util::checkUserIsLoggedIn()) {
         $clientSettings = $session->get('client/settings');
         $session->set('selected_product_id', SystemProduct::SYS_PRODUCT_DOCUMENTADOR);
         $clientId = $session->get('client/id');
     } else {
         $httpHOST = Util::getHttpHost();
         $clientId = $this->getRepository(UbirimiClient::class)->getByBaseURL($httpHOST, 'array', 'id');
         $clientSettings = $this->getRepository(UbirimiClient::class)->getById($clientId);
         $loggedInUserId = null;
         $settingsDocumentador = $this->getRepository(UbirimiClient::class)->getDocumentadorSettings($clientId);
         $documentatorUseAnonymous = $settingsDocumentador['anonymous_use_flag'];
         $documentatorAnonymousViewUserProfiles = $settingsDocumentador['anonymous_view_user_profile_flag'];
         if (!($documentatorUseAnonymous && $documentatorAnonymousViewUserProfiles)) {
             Util::signOutAndRedirect();
             die;
         }
     }
     $userId = $request->get('id');
     $user = $this->getRepository(UbirimiUser::class)->getById($userId);
     if ($user['client_id'] != $clientId) {
         return new RedirectResponse('/general-settings/bad-link-access-denied');
     }
     $menuSelectedCategory = 'documentator';
     $activities = $this->getRepository(UbirimiUser::class)->getDocumentadorActivityStream($userId);
     $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_DOCUMENTADOR_NAME . ' / ' . $user['first_name'] . ' ' . $user['last_name'] . ' / Activity';
     return $this->render(__DIR__ . '/../../Resources/views/user/Activity.php', get_defined_vars());
 }
Example #20
0
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $emptyName = false;
     $allIssueTypes = $this->getRepository(IssueType::class)->getAll($session->get('client/id'));
     if ($request->request->has('new_issue_type_screen_scheme')) {
         $name = Util::cleanRegularInputField($request->request->get('name'));
         $description = Util::cleanRegularInputField($request->request->get('description'));
         if (empty($name)) {
             $emptyName = true;
         }
         if (!$emptyName) {
             $issueTypeScreenScheme = new IssueTypeScreenScheme($session->get('client/id'), $name, $description);
             $currentDate = Util::getServerCurrentDateTime();
             $issueTypeScreenSchemeId = $issueTypeScreenScheme->save($currentDate);
             $issueTypes = $this->getRepository(IssueType::class)->getAll($session->get('client/id'));
             while ($issueType = $issueTypes->fetch_array(MYSQLI_ASSOC)) {
                 $this->getRepository(IssueTypeScreenScheme::class)->addData($issueTypeScreenSchemeId, $issueType['id'], $currentDate);
             }
             $this->getLogger()->addInfo('ADD Yongo Issue Type Screen Scheme ' . $name, $this->getLoggerContext());
             return new RedirectResponse('/yongo/administration/screens/issue-types');
         }
     }
     $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_YONGO_NAME . ' / Create Issue Type Screen Scheme';
     return $this->render(__DIR__ . '/../../../../Resources/views/administration/screen/issue_type_scheme/Add.php', get_defined_vars());
 }
Example #21
0
 public function indexAction(Request $request, SessionInterface $session)
 {
     $entityId = $request->get('id');
     if (Util::checkUserIsLoggedIn()) {
         $session->set('selected_product_id', SystemProduct::SYS_PRODUCT_DOCUMENTADOR);
         $loggedInUserId = $session->get('user/id');
         $page = $this->getRepository(Entity::class)->getById($entityId, $loggedInUserId);
         if ($page) {
             $spaceId = $page['space_id'];
         }
         $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_DOCUMENTADOR_NAME . ' / ' . $page['name'] . ' / Attachments';
     } else {
         $httpHOST = Util::getHttpHost();
         $clientId = $this->getRepository(UbirimiClient::class)->getByBaseURL($httpHOST, 'array', 'id');
         $loggedInUserId = null;
         $settingsDocumentador = $this->getRepository(UbirimiClient::class)->getDocumentadorSettings($clientId);
         $documentatorUseAnonymous = $settingsDocumentador['anonymous_use_flag'];
         $page = $this->getRepository(Entity::class)->getById($entityId, $loggedInUserId);
         if ($page) {
             $spaceId = $page['space_id'];
             $spaceHasAnonymousAccess = $this->getRepository(Space::class)->hasAnonymousAccess($spaceId);
             if (!($documentatorUseAnonymous && $spaceHasAnonymousAccess)) {
                 Util::signOutAndRedirect();
                 die;
             }
         }
         $sectionPageTitle = SystemProduct::SYS_PRODUCT_DOCUMENTADOR_NAME . ' / ' . $page['name'] . ' / Attachments';
     }
     $menuSelectedCategory = 'documentator';
     if ($page) {
         $attachments = $this->getRepository(EntityAttachment::class)->getByEntityId($entityId);
     }
     return $this->render(__DIR__ . '/../../../Resources/views/page/attachment/View.php', get_defined_vars());
 }
 public function indexAction(Request $request, SessionInterface $session)
 {
     if (Util::checkUserIsLoggedIn()) {
         $loggedInUserId = $session->get('user/id');
         $clientId = $session->get('client/id');
         $clientSettings = $session->get('client/settings');
     } else {
         $clientId = $this->getRepository(UbirimiClient::class)->getClientIdAnonymous();
         $loggedInUserId = null;
         $clientSettings = $this->getRepository(UbirimiClient::class)->getSettings($clientId);
     }
     $versionId = $request->get('id');
     $version = $this->getRepository(YongoProject::class)->getVersionById($versionId);
     $projectId = $version['project_id'];
     $project = $this->getRepository(YongoProject::class)->getById($projectId);
     if ($project['client_id'] != $clientId) {
         return new RedirectResponse('/general-settings/bad-link-access-denied');
     }
     $menuSelectedCategory = 'project';
     $sectionPageTitle = $clientSettings['title_name'] . ' / ' . SystemProduct::SYS_PRODUCT_YONGO_NAME . ' / Version: ' . $version['name'] . ' / Summary';
     $issuesResult = $this->getRepository(Issue::class)->getByParameters(array('project' => $projectId, 'resolution' => array(-2), 'page' => 1, 'version' => array($versionId), 'issues_per_page' => 10), $loggedInUserId);
     $issues = $issuesResult[0];
     $issuesResultUpdatedRecently = $this->getRepository(Issue::class)->getByParameters(array('project' => $projectId, 'resolution' => array(-2), 'page' => 1, 'issues_per_page' => 10, 'sort' => 'updated', 'version' => array($versionId), 'sort_order' => 'desc'), $loggedInUserId);
     $issuesUpdatedRecently = $issuesResultUpdatedRecently[0];
     return $this->render(__DIR__ . '/../../Resources/views/project/ViewVersionSummary.php', get_defined_vars());
 }
Example #23
0
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $clientId = $session->get('client/id');
     $clientSettings = $this->getRepository(UbirimiClient::class)->getSettings($clientId);
     $name = Util::cleanRegularInputField($request->request->get('name'));
     $description = $request->request->get('description');
     $location = $request->request->get('location');
     $calendarId = $request->request->get('calendar');
     $start = $request->request->get('start');
     $end = $request->request->get('end');
     $color = '#' . $request->request->get('color');
     $repeatData = $request->request->get('repeat_data');
     if (!empty($name)) {
         $date = Util::getServerCurrentDateTime();
         ini_set('memory_limit', '1024M');
         $eventId = $this->getRepository(CalendarEvent::class)->add($calendarId, $session->get('user/id'), $name, $description, $location, $start, $end, $color, $date, $repeatData, $clientSettings);
         // add the default reminders
         $reminders = $this->getRepository(UbirimiCalendar::class)->getReminders($calendarId);
         while ($reminders && ($reminder = $reminders->fetch_array(MYSQLI_ASSOC))) {
             $this->getRepository(CalendarEvent::class)->addReminder($eventId, $reminder['cal_event_reminder_type_id'], $reminder['cal_event_reminder_period_id'], $reminder['value']);
         }
         $this->getLogger()->addInfo('ADD EVENTS event ' . $name, $this->getLoggerContext());
     }
     return new Response('');
 }
 public function indexAction(Request $request, SessionInterface $session)
 {
     if (Util::checkUserIsLoggedIn()) {
         $clientId = $session->get('client/id');
         $loggedInUserId = $session->get('user/id');
         $clientSettings = $session->get('client/settings');
     } else {
         $clientId = $this->getRepository(UbirimiClient::class)->getClientIdAnonymous();
         $loggedInUserId = null;
         $clientSettings = $this->getRepository(UbirimiClient::class)->getSettings($clientId);
     }
     $projectId = $request->get('id');
     $month = $request->get('month');
     $year = $request->get('year');
     $project = $this->getRepository(YongoProject::class)->getById($projectId);
     if ($project['client_id'] != $clientId) {
         return new RedirectResponse('/general-settings/bad-link-access-denied');
     }
     $session->set('selected_project_id', $projectId);
     $menuSelectedCategory = 'project';
     $hasGlobalAdministrationPermission = $this->getRepository(UbirimiUser::class)->hasGlobalPermission($clientId, $loggedInUserId, GlobalPermission::GLOBAL_PERMISSION_YONGO_ADMINISTRATORS);
     $hasGlobalSystemAdministrationPermission = $this->getRepository(UbirimiUser::class)->hasGlobalPermission($clientId, $loggedInUserId, GlobalPermission::GLOBAL_PERMISSION_YONGO_SYSTEM_ADMINISTRATORS);
     $hasAdministerProjectsPermission = $this->getRepository(UbirimiClient::class)->getProjectsByPermission($clientId, $loggedInUserId, Permission::PERM_ADMINISTER_PROJECTS);
     $hasAdministerProject = $hasGlobalSystemAdministrationPermission || $hasGlobalAdministrationPermission || $hasAdministerProjectsPermission;
     $previousMonthName = date("F", mktime(0, 0, 0, $month - 1));
     $currentMonthName = date("F", mktime(0, 0, 0, $month));
     $nextMonthName = date("F", mktime(0, 0, 0, $month + 1));
     $sectionPageTitle = $clientSettings['title_name'] . ' / ' . SystemProduct::SYS_PRODUCT_YONGO_NAME . ' / ' . $project['name'] . ' / Calendar (due date)';
     return $this->render(__DIR__ . '/../../Resources/views/project/ViewCalendar.php', get_defined_vars());
 }
Example #25
0
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $tagId = $request->get('id');
     $tag = $this->getRepository(Tag::class)->getById($tagId);
     if ($tag['user_id'] != $session->get('user/id')) {
         return new RedirectResponse('/general-settings/bad-link-access-denied');
     }
     $emptyName = false;
     $tagExists = false;
     if ($request->request->has('edit_tag')) {
         $name = Util::cleanRegularInputField($request->request->get('name'));
         $description = Util::cleanRegularInputField($request->request->get('description'));
         if (empty($name)) {
             $emptyName = true;
         }
         // check for duplication
         $tagDuplicate = $this->getRepository(Tag::class)->getByNameAndUserId($session->get('user/id'), mb_strtolower($name), $tagId);
         if ($tagDuplicate) {
             $tagExists = true;
         }
         if (!$tagExists && !$emptyName) {
             $date = Util::getServerCurrentDateTime();
             $this->getRepository(Tag::class)->updateById($tagId, $name, $description, $date);
             $this->getLogger()->addInfo('UPDATE NOTEBOOK tag ' . $name, $this->getLoggerContext());
             return new RedirectResponse('/quick-notes/tag/all');
         }
     }
     $menuSelectedCategory = 'tags';
     $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_QUICK_NOTES_NAME . ' / Notebook: ' . $tag['name'] . ' / Update';
     return $this->render(__DIR__ . '/../../Resources/views/Tag/Edit.php', get_defined_vars());
 }
Example #26
0
 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);
 }
Example #27
0
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $screenId = $request->get('id');
     $screenMetadata = $this->getRepository(Screen::class)->getMetaDataById($screenId);
     if ($screenMetadata['client_id'] != $session->get('client/id')) {
         return new RedirectResponse('/general-settings/bad-link-access-denied');
     }
     $position = $request->get('position');
     $fieldId = $request->get('field_id');
     if ($fieldId && $position) {
         $this->getRepository(Screen::class)->updatePositionForField($screenId, $fieldId, $position);
         return new RedirectResponse('/yongo/administration/screen/configure/' . $screenId);
     }
     $fields = $this->getRepository(Field::class)->getByClient($session->get('client/id'));
     if ($request->request->has('add_screen_field')) {
         $fieldId = Util::cleanRegularInputField($request->request->get('field'));
         if ($fieldId != -1) {
             $currentDate = Util::getServerCurrentDateTime();
             $lastOrder = $this->getRepository(Screen::class)->getLastOrderNumber($screenId);
             $this->getRepository(Screen::class)->addData($screenId, $fieldId, $lastOrder + 1, $currentDate);
             $this->getLogger()->addInfo('UPDATE Yongo Screen Data ' . $screenMetadata['name'], $this->getLoggerContext());
             return new RedirectResponse('/yongo/administration/screen/configure/' . $screenId);
         }
     }
     $screenData = $this->getRepository(Screen::class)->getDataById($screenId);
     $menuSelectedCategory = 'issue';
     $source = $request->get('source');
     $projectId = null;
     if ($source == 'project_screen' || $source == 'project_field') {
         $projectId = $request->get('project_id');
     }
     $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_YONGO_NAME . ' / Update Screen';
     return $this->render(__DIR__ . '/../../../Resources/views/administration/screen/Configure.php', get_defined_vars());
 }
Example #28
0
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $menuSelectedCategory = 'issue';
     $emptyName = false;
     $fields = $this->getRepository(Field::class)->getByClient($session->get('client/id'));
     if ($request->request->has('add_screen')) {
         $name = Util::cleanRegularInputField($request->request->get('name'));
         $description = Util::cleanRegularInputField($request->request->get('description'));
         $currentDate = Util::getServerCurrentDateTime();
         if (empty($name)) {
             $emptyName = true;
         }
         if (!$emptyName) {
             $screen = new Screen($session->get('client/id'), $name, $description);
             $screenId = $screen->save($currentDate);
             $order = 0;
             foreach ($request->request as $key => $value) {
                 if (substr($key, 0, 6) == 'field_') {
                     $order++;
                     $fieldId = str_replace('field_', '', $key);
                     $this->getRepository(Screen::class)->addData($screenId, $fieldId, $order, $currentDate);
                 }
             }
             $this->getLogger()->addInfo('ADD Yongo Screen ' . $name, $this->getLoggerContext());
             return new RedirectResponse('/yongo/administration/screens');
         }
     }
     $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_YONGO_NAME . ' / Create Screen';
     return $this->render(__DIR__ . '/../../../Resources/views/administration/screen/Add.php', get_defined_vars());
 }
 public function indexAction(Request $request, SessionInterface $session)
 {
     Util::checkUserIsLoggedInAndRedirect();
     $clientId = $session->get('client/id');
     $workflowId = $request->get('id');
     $stepIdFrom = $request->get('step_id_from');
     $stepIdTo = $request->get('step_id_to');
     $projectId = $request->get('project_id');
     $issueId = $request->get('issue_id');
     $assignableUsers = $this->getRepository(YongoProject::class)->getUsersWithPermission($projectId, Permission::PERM_ASSIGNABLE_USER);
     $projectData = $this->getRepository(YongoProject::class)->getById($projectId);
     $issue = $this->getRepository(Issue::class)->getByIdSimple($issueId);
     $workflowData = $this->getRepository(Workflow::class)->getDataByStepIdFromAndStepIdTo($workflowId, $stepIdFrom, $stepIdTo);
     $screenId = $workflowData['screen_id'];
     $allUsers = $this->getRepository(UbirimiUser::class)->getByClientId($session->get('client/id'));
     $screenData = $this->getRepository(Screen::class)->getDataById($screenId);
     $screenMetadata = $this->getRepository(Screen::class)->getMetaDataById($screenId);
     $resolutions = $this->getRepository(IssueSettings::class)->getAllIssueSettings('resolution', $clientId);
     $projectComponents = $this->getRepository(YongoProject::class)->getComponents($projectId);
     $projectVersions = $this->getRepository(YongoProject::class)->getVersions($projectId);
     $htmlOutput = '';
     $htmlOutput .= '<table class="modal-table">';
     $reporterUsers = $this->getRepository(YongoProject::class)->getUsersWithPermission($projectId, Permission::PERM_CREATE_ISSUE);
     $fieldCodeNULL = null;
     $fieldData = $this->getRepository(YongoProject::class)->getFieldInformation($projectData['issue_type_field_configuration_id'], $issue['type_id'], 'array');
     return $this->render(__DIR__ . '/../../Resources/views/issue/TransitionDialog.php', get_defined_vars());
 }
 public function indexAction(Request $request, SessionInterface $session)
 {
     $projectId = $request->get('id');
     if (Util::checkUserIsLoggedIn()) {
         $loggedInUserId = $session->get('user/id');
         $clientId = $session->get('client/id');
         $project = $this->getRepository(YongoProject::class)->getById($projectId);
         $sectionPageTitle = $session->get('client/settings/title_name') . ' / ' . SystemProduct::SYS_PRODUCT_YONGO_NAME . ' / ' . $project['name'];
     } else {
         $httpHOST = Util::getHttpHost();
         $clientId = $this->getRepository(UbirimiClient::class)->getByBaseURL($httpHOST, 'array', 'id');
         $loggedInUserId = null;
         $clientSettings = $this->getRepository(UbirimiClient::class)->getSettings($clientId);
         $project = $this->getRepository(YongoProject::class)->getById($projectId);
         $sectionPageTitle = $clientSettings['title_name'] . ' / ' . SystemProduct::SYS_PRODUCT_YONGO_NAME . ' / ' . $project['name'];
     }
     $hasBrowsingPermission = $this->getRepository(YongoProject::class)->userHasPermission(array($projectId), Permission::PERM_BROWSE_PROJECTS, $loggedInUserId);
     if ($project['client_id'] != $clientId || !$hasBrowsingPermission) {
         return new RedirectResponse('/general-settings/bad-link-access-denied');
     }
     $session->set('selected_project_id', $projectId);
     $menuSelectedCategory = 'project';
     $hasGlobalAdministrationPermission = $this->getRepository(UbirimiUser::class)->hasGlobalPermission($clientId, $loggedInUserId, GlobalPermission::GLOBAL_PERMISSION_YONGO_ADMINISTRATORS);
     $hasGlobalSystemAdministrationPermission = $this->getRepository(UbirimiUser::class)->hasGlobalPermission($clientId, $loggedInUserId, GlobalPermission::GLOBAL_PERMISSION_YONGO_SYSTEM_ADMINISTRATORS);
     $hasAdministerProjectsPermission = $this->getRepository(UbirimiClient::class)->getProjectsByPermission($clientId, $loggedInUserId, Permission::PERM_ADMINISTER_PROJECTS);
     $hasAdministerProject = $hasGlobalSystemAdministrationPermission || $hasGlobalAdministrationPermission || $hasAdministerProjectsPermission;
     $menuProjectCategory = 'summary';
     return $this->render(__DIR__ . '/../../Resources/views/project/ViewSummary.php', get_defined_vars());
 }