Skip to content

Commit e0e89aa

Browse files
committed
refactor: added more permission type enums
1 parent 96d9608 commit e0e89aa

File tree

12 files changed

+47
-27
lines changed

12 files changed

+47
-27
lines changed

phpmyfaq/add.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
use phpMyFAQ\Captcha\Captcha;
1919
use phpMyFAQ\Captcha\Helper\CaptchaHelper;
2020
use phpMyFAQ\Configuration;
21+
use phpMyFAQ\Enums\PermissionType;
2122
use phpMyFAQ\Filter;
2223
use phpMyFAQ\Helper\CategoryHelper as HelperCategory;
2324
use phpMyFAQ\Question;
@@ -46,7 +47,7 @@
4647
}
4748

4849
// Check permission to add new faqs
49-
if (-1 !== $user->getUserId() && !$user->perm->hasPermission($user->getUserId(), 'addfaq')) {
50+
if (-1 !== $user->getUserId() && !$user->perm->hasPermission($user->getUserId(), PermissionType::FAQ_ADD)) {
5051
$response = new RedirectResponse($faqSystem->getSystemUri($faqConfig));
5152
$response->send();
5253
}

phpmyfaq/admin/dashboard.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
use phpMyFAQ\Component\Alert;
2121
use phpMyFAQ\Configuration;
2222
use phpMyFAQ\Database;
23+
use phpMyFAQ\Enums\PermissionType;
2324
use phpMyFAQ\Filter;
2425
use phpMyFAQ\Session;
2526
use phpMyFAQ\System;
@@ -66,7 +67,7 @@
6667
'hasUserTracking' => $faqConfig->get('main.enableUserTracking'),
6768
'adminDashboardHeaderInactiveFaqs' => Translation::get('ad_record_inactive'),
6869
'adminDashboardInactiveFaqs' => $faq->getInactiveFaqsData(),
69-
'hasPermissionEditConfig' => $user->perm->hasPermission($user->getUserId(), 'editconfig'),
70+
'hasPermissionEditConfig' => $user->perm->hasPermission($user->getUserId(), PermissionType::CONFIGURATION_EDIT),
7071
'showVersion' => $faqConfig->get('main.enableAutoUpdateHint'),
7172
];
7273

@@ -92,7 +93,7 @@
9293
];
9394
}
9495

95-
if ($user->perm->hasPermission($user->getUserId(), 'editconfig')) {
96+
if ($user->perm->hasPermission($user->getUserId(), PermissionType::CONFIGURATION_EDIT)) {
9697
$api = new Api($faqConfig);
9798

9899
$version = Filter::filterInput(INPUT_POST, 'param', FILTER_SANITIZE_SPECIAL_CHARS);

phpmyfaq/admin/faqs.editor.php

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -310,7 +310,7 @@
310310
//
311311
// Revisions
312312
//
313-
if ($user->perm->hasPermission($currentUserId, 'changebtrevs') && $action === 'editentry') {
313+
if ($user->perm->hasPermission($currentUserId, PermissionType::REVISION_UPDATE) && $action === 'editentry') {
314314
$faqRevision = new Revision($faqConfig);
315315
$revisions = $faqRevision->get($faqData['id'], $faqData['lang'], $faqData['author']);
316316

@@ -374,7 +374,10 @@
374374
'ad_entry_locale' => Translation::get('ad_entry_locale'),
375375
'languageOptions' => LanguageHelper::renderSelectLanguage($faqData['lang'], false, [], 'lang'),
376376
'hasPermissionForAddAttachments' => $user->perm->hasPermission($currentUserId, PermissionType::ATTACHMENT_ADD),
377-
'hasPermissionForDeleteAttachments' => $user->perm->hasPermission($currentUserId, PermissionType::ATTACHMENT_DELETE),
377+
'hasPermissionForDeleteAttachments' => $user->perm->hasPermission(
378+
$currentUserId,
379+
PermissionType::ATTACHMENT_DELETE
380+
),
378381
'ad_menu_attachments' => Translation::get('ad_menu_attachments'),
379382
'csrfTokenDeleteAttachment' => Token::getInstance()->getTokenString('delete-attachment'),
380383
'attachments' => $attList,

phpmyfaq/admin/news.php

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
use phpMyFAQ\Date;
2121
use phpMyFAQ\Entity\CommentType;
2222
use phpMyFAQ\Entity\NewsMessage;
23+
use phpMyFAQ\Enums\PermissionType;
2324
use phpMyFAQ\Filter;
2425
use phpMyFAQ\Helper\LanguageHelper;
2526
use phpMyFAQ\News;
@@ -43,9 +44,9 @@
4344

4445
$templateVars = [
4546
'action' => $action,
46-
'permissionAddNews' => $user->perm->hasPermission($user->getUserId(), 'addnews'),
47-
'permissionEditNews' => $user->perm->hasPermission($user->getUserId(), 'editnews'),
48-
'permissionDeleteNews' => $user->perm->hasPermission($user->getUserId(), 'delnews'),
47+
'permissionAddNews' => $user->perm->hasPermission($user->getUserId(), PermissionType::NEWS_ADD),
48+
'permissionEditNews' => $user->perm->hasPermission($user->getUserId(), PermissionType::NEWS_EDIT),
49+
'permissionDeleteNews' => $user->perm->hasPermission($user->getUserId(), PermissionType::NEWS_DELETE),
4950
'defaultUrl' => $faqConfig->getDefaultUrl(),
5051
'enableWysiwyg' => $faqConfig->get('main.enableWysiwygEditor'),
5152
'ad_news_add' => Translation::get('ad_news_add'),
@@ -92,20 +93,20 @@
9293
'csrfToken_activateNews' => Token::getInstance()->getTokenString('activate-news')
9394
];
9495

95-
if ('add-news' == $action && $user->perm->hasPermission($user->getUserId(), 'addnews')) {
96+
if ('add-news' == $action && $user->perm->hasPermission($user->getUserId(), PermissionType::NEWS_ADD)) {
9697
$templateVars = [
9798
...$templateVars,
9899
'userEmail' => $user->getUserData('email'),
99100
'userName' => $user->getUserData('display_name')
100101
];
101-
} elseif ('news' == $action && $user->perm->hasPermission($user->getUserId(), 'editnews')) {
102+
} elseif ('news' == $action && $user->perm->hasPermission($user->getUserId(), PermissionType::NEWS_EDIT)) {
102103
$newsHeaders = $news->getHeader();
103104

104105
$templateVars = [
105106
...$templateVars,
106107
'news' => $newsHeaders,
107108
];
108-
} elseif ('edit-news' == $action && $user->perm->hasPermission($user->getUserId(), 'editnews')) {
109+
} elseif ('edit-news' == $action && $user->perm->hasPermission($user->getUserId(), PermissionType::NEWS_EDIT)) {
109110
$id = Filter::filterInput(INPUT_GET, 'id', FILTER_VALIDATE_INT);
110111
$newsData = $news->get($id, true);
111112

phpmyfaq/admin/stopwords.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444

4545
$templateVars = [
4646
'adminHeaderStopWords' => Translation::get('ad_menu_stopwordsconfig'),
47-
'hasPermission' => $user->perm->hasPermission($user->getUserId(), 'editconfig'),
47+
'hasPermission' => $user->perm->hasPermission($user->getUserId(), PermissionType::CONFIGURATION_EDIT),
4848
'msgDescription' => Translation::get('ad_stopwords_desc'),
4949
'csrfToken' => Token::getInstance()->getTokenInput('stopwords'),
5050
'msgStopWordsLabel' => Translation::get('ad_stopwords_desc'),

phpmyfaq/index.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
use phpMyFAQ\Category\Relation;
2626
use phpMyFAQ\Configuration;
2727
use phpMyFAQ\Core\Exception;
28+
use phpMyFAQ\Enums\PermissionType;
2829
use phpMyFAQ\Faq;
2930
use phpMyFAQ\Filter;
3031
use phpMyFAQ\Helper\CategoryHelper as HelperCategory;
@@ -655,7 +656,7 @@
655656
// Show login box or logged-in user information
656657
//
657658
if ($user->isLoggedIn() && $user->getUserId() > 0) {
658-
if ($user->perm->hasPermission($user->getUserId(), 'viewadminlink') || $user->isSuperAdmin()) {
659+
if ($user->perm->hasPermission($user->getUserId(), PermissionType::VIEW_ADMIN_LINK) || $user->isSuperAdmin()) {
659660
$adminSection = sprintf(
660661
'<a class="dropdown-item" href="./admin/index.php">%s</a>',
661662
Translation::get('adminSection')

phpmyfaq/news.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
use phpMyFAQ\Configuration;
2424
use phpMyFAQ\Date;
2525
use phpMyFAQ\Entity\CommentType;
26+
use phpMyFAQ\Enums\PermissionType;
2627
use phpMyFAQ\Filter;
2728
use phpMyFAQ\Glossary;
2829
use phpMyFAQ\Helper\CommentHelper;
@@ -82,7 +83,7 @@
8283

8384
// Show a link to edit the news?
8485
$editThisEntry = '';
85-
if ($user->perm->hasPermission($user->getUserId(), 'editnews')) {
86+
if ($user->perm->hasPermission($user->getUserId(), PermissionType::NEWS_EDIT)) {
8687
$editThisEntry = sprintf(
8788
'<a href="./admin/index.php?action=news&amp;do=edit&amp;id=%d">%s</a>',
8889
$newsId,

phpmyfaq/pdf.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
*/
2121

2222
use phpMyFAQ\Category;
23+
use phpMyFAQ\Enums\PermissionType;
2324
use phpMyFAQ\Export\Pdf;
2425
use phpMyFAQ\Faq;
2526
use phpMyFAQ\Filter;
@@ -110,7 +111,7 @@
110111

111112
$response->setExpires(new DateTime());
112113

113-
if (true === $getAll && $user->perm->hasPermission($user->getUserId(), 'export')) {
114+
if (true === $getAll && $user->perm->hasPermission($user->getUserId(), PermissionType::EXPORT)) {
114115
$filename = 'FAQs.pdf';
115116
$pdfFile = $pdf->generate(0, true, $lang);
116117
} else {

phpmyfaq/src/phpMyFAQ/Controller/Administration/FormController.php

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
use phpMyFAQ\Controller\AbstractController;
2323
use phpMyFAQ\Enums\PermissionType;
2424
use phpMyFAQ\Translation;
25+
use Symfony\Component\HttpFoundation\JsonResponse;
2526
use Symfony\Component\HttpFoundation\Request;
2627
use phpMyFAQ\Filter;
2728
use phpMyFAQ\Session\Token;
@@ -118,16 +119,22 @@ public function deleteTranslation(Request $request)
118119
}
119120
}
120121

122+
/**
123+
* @throws Exception
124+
*/
121125
#[Route('admin/api/forms/translation-add')]
122-
public function addTranslation(Request $request)
126+
public function addTranslation(Request $request): JsonResponse
123127
{
124128
$this->userHasPermission(PermissionType::FORMS_EDIT);
129+
125130
$data = json_decode($request->getContent());
131+
126132
$formId = Filter::filterVar($data->formId, FILTER_SANITIZE_NUMBER_INT);
127133
$inputId = Filter::filterVar($data->inputId, FILTER_SANITIZE_NUMBER_INT);
128134
$lang = Filter::filterVar($data->lang, FILTER_SANITIZE_SPECIAL_CHARS);
129135
$translation = Filter::filterVar($data->translation, FILTER_SANITIZE_SPECIAL_CHARS);
130136
$forms = new Forms(Configuration::getConfigurationInstance());
137+
131138
if (!Token::getInstance()->verifyToken('add-translation', $data->csrf)) {
132139
return $this->json(['error' => Translation::get('err_NotAuth')], Response::HTTP_UNAUTHORIZED);
133140
}

phpmyfaq/src/phpMyFAQ/Enums/PermissionType.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,8 @@ enum PermissionType: string
8080

8181
case RESTORE = 'restore';
8282

83+
case REVISION_UPDATE = 'changebtrevs';
84+
8385
case STATISTICS_ADMINLOG = 'adminlog';
8486

8587
case STATISTICS_VIEWLOGS = 'viewlog';
@@ -91,4 +93,6 @@ enum PermissionType: string
9193
case USER_DELETE = 'delete_user';
9294

9395
case FORMS_EDIT = 'forms_edit';
96+
97+
case VIEW_ADMIN_LINK = 'viewadminlink';
9498
}

0 commit comments

Comments
 (0)