Skip to content

Commit

Permalink
feat(issue): access to admins
Browse files Browse the repository at this point in the history
Signed-off-by: Thierry Bugier <[email protected]>
  • Loading branch information
btry committed Dec 6, 2021
1 parent 893b2cc commit 33ee3ea
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 4 deletions.
11 changes: 8 additions & 3 deletions hook.php
Original file line number Diff line number Diff line change
Expand Up @@ -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 = [];
Expand Down
5 changes: 4 additions & 1 deletion inc/form.class.php
Original file line number Diff line number Diff line change
Expand Up @@ -119,10 +119,13 @@ public static function getMenuContent() {
title="' . __('Forms waiting for validation', 'formcreator') . '"></i>';
$import_image = '<i class="fas fa-download"
title="' . __('Import forms', 'formcreator') . '"></i>';
$requests_image = '<i class="fa fa-paper-plane"
title="' . PluginFormcreatorIssue::getTypeName(Session::getPluralNumber()) . '"></i>';

$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;
}

Expand Down
6 changes: 6 additions & 0 deletions tests/4-functional/PluginFormcreatorForm.php
Original file line number Diff line number Diff line change
Expand Up @@ -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 . '"]');
}
}

0 comments on commit 33ee3ea

Please sign in to comment.