diff --git a/phpmyfaq/admin/header.php b/phpmyfaq/admin/header.php index 9ed38beec7..4e8876351f 100644 --- a/phpmyfaq/admin/header.php +++ b/phpmyfaq/admin/header.php @@ -16,6 +16,7 @@ */ use phpMyFAQ\Configuration; +use phpMyFAQ\Enums\PermissionType; use phpMyFAQ\Helper\AdministrationHelper; use phpMyFAQ\Helper\LanguageHelper; use phpMyFAQ\Services\Gravatar; @@ -63,7 +64,12 @@ 'ad_menu_categ_edit', $action ); -$secLevelEntries['content'] .= $adminHelper->addMenuEntry('add_faq', 'editentry', 'ad_entry_add', $action); +$secLevelEntries['content'] .= $adminHelper->addMenuEntry( + PermissionType::FAQ_ADD->value, + 'editentry', + 'ad_entry_add', + $action +); $secLevelEntries['content'] .= $adminHelper->addMenuEntry( 'edit_faq+delete_faq', 'faqs-overview', @@ -71,7 +77,12 @@ $action ); -$secLevelEntries['content'] .= $adminHelper->addMenuEntry('edit_faq', 'stickyfaqs', 'stickyRecordsHeader', $action); +$secLevelEntries['content'] .= $adminHelper->addMenuEntry( + PermissionType::FAQ_EDIT->value, + 'stickyfaqs', + 'stickyRecordsHeader', + $action +); $secLevelEntries['content'] .= $adminHelper->addMenuEntry('delcomment', 'comments', 'ad_menu_comments', $action); $secLevelEntries['content'] .= $adminHelper->addMenuEntry('delquestion', 'question', 'ad_menu_open', $action); $secLevelEntries['content'] .= $adminHelper->addMenuEntry( @@ -92,15 +103,45 @@ 'ad_menu_attachments', $action ); -$secLevelEntries['content'] .= $adminHelper->addMenuEntry('edit_faq', 'tags', 'ad_entry_tags', $action); +$secLevelEntries['content'] .= $adminHelper->addMenuEntry( + PermissionType::FAQ_EDIT->value, + 'tags', + 'ad_entry_tags', + $action +); -$secLevelEntries['statistics'] = $adminHelper->addMenuEntry('viewlog', 'statistics', 'ad_menu_stat', $action); -$secLevelEntries['statistics'] .= $adminHelper->addMenuEntry('viewlog', 'viewsessions', 'ad_menu_session', $action); -$secLevelEntries['statistics'] .= $adminHelper->addMenuEntry('adminlog', 'adminlog', 'ad_menu_adminlog', $action); -$secLevelEntries['statistics'] .= $adminHelper->addMenuEntry('viewlog', 'searchstats', 'ad_menu_searchstats', $action); +$secLevelEntries['statistics'] = $adminHelper->addMenuEntry( + PermissionType::STATISTICS_VIEWLOGS->value, + 'statistics', + 'ad_menu_stat', + $action +); +$secLevelEntries['statistics'] .= $adminHelper->addMenuEntry( + PermissionType::STATISTICS_VIEWLOGS->value, + 'viewsessions', + 'ad_menu_session', + $action +); +$secLevelEntries['statistics'] .= $adminHelper->addMenuEntry( + PermissionType::STATISTICS_ADMINLOG->value, + 'adminlog', + 'ad_menu_adminlog', + $action +); +$secLevelEntries['statistics'] .= $adminHelper->addMenuEntry( + PermissionType::STATISTICS_VIEWLOGS->value, + 'searchstats', + 'ad_menu_searchstats', + $action +); $secLevelEntries['statistics'] .= $adminHelper->addMenuEntry('reports', 'reports', 'ad_menu_reports', $action); -$secLevelEntries['imports_exports'] = $adminHelper->addMenuEntry('add_faq', 'importcsv', 'msgImportRecords', $action); +$secLevelEntries['imports_exports'] = $adminHelper->addMenuEntry( + PermissionType::FAQ_ADD->value, + 'importcsv', + 'msgImportRecords', + $action +); $secLevelEntries['imports_exports'] .= $adminHelper->addMenuEntry('export', 'export', 'ad_menu_export', $action); $secLevelEntries['backup'] = $adminHelper->addMenuEntry('editconfig', 'backup', 'ad_menu_backup', $action); diff --git a/phpmyfaq/admin/record.edit.php b/phpmyfaq/admin/record.edit.php index 90cd42d25f..6c809d8548 100644 --- a/phpmyfaq/admin/record.edit.php +++ b/phpmyfaq/admin/record.edit.php @@ -947,8 +947,14 @@ function setRecordDate(how) { } perm->hasPermission($currentUserId, 'edit_faq') && !Database::checkOnEmptyTable('faqcategories')) { +} elseif ( + $user->perm->hasPermission($currentUserId, PermissionType::FAQ_EDIT->value) && + !Database::checkOnEmptyTable('faqcategories') +) { require 'no-permission.php'; -} elseif ($user->perm->hasPermission($currentUserId, 'edit_faq') && Database::checkOnEmptyTable('faqcategories')) { +} elseif ( + $user->perm->hasPermission($currentUserId, PermissionType::FAQ_EDIT->value) && + Database::checkOnEmptyTable('faqcategories') +) { echo Translation::get('no_cats'); } diff --git a/phpmyfaq/admin/stat.adminlog.php b/phpmyfaq/admin/stat.adminlog.php index 7a87ec7c5a..d3b3915398 100644 --- a/phpmyfaq/admin/stat.adminlog.php +++ b/phpmyfaq/admin/stat.adminlog.php @@ -146,7 +146,11 @@ perm->hasPermission($user->getUserId(), 'adminlog') && 'deleteadminlog' === $action && $deleteLog) { +} elseif ( + $user->perm->hasPermission($user->getUserId(), PermissionType::STATISTICS_ADMINLOG->value) && + 'deleteadminlog' === $action && + $deleteLog +) { if ($logging->delete()) { echo Alert::success('ad_adminlog_delete_success'); } else { diff --git a/phpmyfaq/admin/tags.php b/phpmyfaq/admin/tags.php index 86717f6776..dc56288d2e 100644 --- a/phpmyfaq/admin/tags.php +++ b/phpmyfaq/admin/tags.php @@ -16,6 +16,7 @@ */ use phpMyFAQ\Configuration; +use phpMyFAQ\Enums\PermissionType; use phpMyFAQ\Filter; use phpMyFAQ\Session\Token; use phpMyFAQ\Tags; @@ -65,7 +66,7 @@ echo $template->render($templateVars); -if (!$user->perm->hasPermission($user->getUserId(), 'edit_faq')) { +if (!$user->perm->hasPermission($user->getUserId(), PermissionType::FAQ_EDIT->value)) { require 'no-permission.php'; } diff --git a/phpmyfaq/admin/user.php b/phpmyfaq/admin/user.php index abfe7f1422..b29334bbb6 100755 --- a/phpmyfaq/admin/user.php +++ b/phpmyfaq/admin/user.php @@ -279,7 +279,7 @@ class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-cente
perm->hasPermission($user->getUserId(), 'add_user')) : ?> + if ($currentUser->perm->hasPermission($user->getUserId(), PermissionType::USER_ADD->value)) : ?>