diff --git a/hook.php b/hook.php
index 35ca25343..c7d02e4db 100644
--- a/hook.php
+++ b/hook.php
@@ -127,20 +127,25 @@ function plugin_formcreator_addDefaultWhere($itemtype) {
$currentUser = Session::getLoginUserID();
switch ($itemtype) {
case PluginFormcreatorIssue::class:
+ if (Session::haveRight(Entity::$rightname, UPDATE)) {
+ // The user is a Formcreator administrator
+ return '';
+ }
+ // Simplified interface or service catalog
// Use default where from Tickets
$condition = Search::addDefaultWhere(Ticket::class);
if ($condition != '') {
// Replace references to ticket tables with issues table
$condition = str_replace('`glpi_tickets`', '`glpi_plugin_formcreator_issues`', $condition);
$condition = str_replace('`users_id_recipient`', '`requester_id`', $condition);
- // $condition .= ' OR ';
+ $condition .= ' OR ';
}
// condition where current user is a validator of the issue
if (Plugin::isPluginActive('advform')) {
$complexJoinId = Search::computeComplexJoinID(Search::getOptions($itemtype)[9]['joinparams']);
- $condition .= " OR `glpi_users_$complexJoinId`.`id` = '$currentUser'";
+ $condition .= "`glpi_users_$complexJoinId`.`id` = '$currentUser'";
} else {
- $condition .= " OR `glpi_plugin_formcreator_issues`.`users_id_validator` = '$currentUser'";
+ $condition .= "`glpi_plugin_formcreator_issues`.`users_id_validator` = '$currentUser'";
}
// condition where current user is a member of a validator group of the issue
$groupList = [];
diff --git a/inc/form.class.php b/inc/form.class.php
index b99e9fe33..f97942b99 100644
--- a/inc/form.class.php
+++ b/inc/form.class.php
@@ -119,10 +119,13 @@ public static function getMenuContent() {
title="' . __('Forms waiting for validation', 'formcreator') . '">';
$import_image = '';
+ $requests_image = '';
+
$menu['links']['search'] = PluginFormcreatorFormList::getSearchURL(false);
$menu['links'][$validation_image] = PluginFormcreatorFormAnswer::getSearchURL(false);
$menu['links'][$import_image] = PluginFormcreatorForm::getFormURL(false)."?import_form=1";
-
+ $menu['links'][$requests_image] = PluginFormcreatorIssue::getSearchURL(false);
return $menu;
}
diff --git a/tests/4-functional/PluginFormcreatorForm.php b/tests/4-functional/PluginFormcreatorForm.php
index 2f0a40b43..615150f17 100644
--- a/tests/4-functional/PluginFormcreatorForm.php
+++ b/tests/4-functional/PluginFormcreatorForm.php
@@ -257,4 +257,10 @@ public function testVisibilityByLanguage() {
$output = $this->crawler->filter($formTileSelector);
$this->integer(count($output))->isEqualTo(0);
}
+
+ public function testAcessToIssuesFromAdmin() {
+ $this->crawler = $this->client->request('GET', '/' . Plugin::getWebDir('formcreator', false) . '/front/form.php');
+ $href = '/' . Plugin::getWebDir('formcreator', false) . '/front/issue.php';
+ $this->client->waitForVisibility('header li.nav-item a[href="' . $href . '"]');
+ }
}