Skip to content

Commit 22e0b24

Browse files
authored
Merge pull request #1581 from craftcms/bugfix/settings-only-for-admins-and-with-allowAdminChanges
Settings pages are only for admins and when `allowAdminChanges` is true
2 parents 9461926 + 5849f35 commit 22e0b24

File tree

7 files changed

+31
-9
lines changed

7 files changed

+31
-9
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Release Notes for Feed Me
22

3+
## Unreleased
4+
5+
- Feed Me settings are now only available when `allowAdminChanges` are set to `true`. ([#1581](https://github.com/craftcms/feed-me/pull/1581))
6+
37
## 5.9.0 - 2024-11-26
48

59
- Added the `assetDownloadGuzzle` config setting which defaults to `false`. When it is set to `true`, Feed Me will use Guzzle to download assets instead curl directly. ([#1549](https://github.com/craftcms/feed-me/pull/1549))

docs/.vitepress/utils.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ function renderInlineCode(tokens, idx, options, env, renderer) {
77
var token = tokens[idx];
88

99
return `<code v-pre ${renderer.renderAttrs(token)}>${escapeHtml(
10-
tokens[idx].content,
10+
tokens[idx].content
1111
)}</code>`;
1212
}
1313

src/Plugin.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,7 @@ private function _registerCpRoutes(): void
155155
'feed-me/feeds/run/<feedId:\d+>' => 'feed-me/feeds/run-feed',
156156
'feed-me/feeds/status/<feedId:\d+>' => 'feed-me/feeds/status-feed',
157157
'feed-me/logs' => 'feed-me/logs/logs',
158+
'feed-me/utilities' => ['template' => 'feed-me/utilities/index'],
158159
'feed-me/settings/general' => 'feed-me/base/settings',
159160
]);
160161
});

src/controllers/BaseController.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ class BaseController extends Controller
2323
*/
2424
public function actionSettings(): Response
2525
{
26+
$this->requireAdmin();
27+
2628
$settings = Plugin::$plugin->getSettings();
2729

2830
return $this->renderTemplate('feed-me/settings/general', [
@@ -41,6 +43,6 @@ public function actionClearTasks(): Response
4143
->delete('{{%queue}}')
4244
->execute();
4345

44-
return $this->redirect('feed-me/settings/general');
46+
return $this->redirect('feed-me/utilities');
4547
}
4648
}

src/templates/settings/general.html

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
{% requireAdmin %}
2+
13
{% extends 'feed-me/_layouts/settings' %}
24

35
{% import '_includes/forms' as forms %}
@@ -38,18 +40,13 @@
3840
options: {
3941
'feeds': 'Feeds'|t('feed-me'),
4042
'logs': 'Logs'|t('feed-me'),
43+
'utilities': 'Utilities'|t('feed-me'),
4144
'settings': 'Settings'|t('feed-me'),
4245
},
4346
values: settings.enabledTabs,
4447
instructions: 'Choose which tabs you would like to be shown.'|t('feed-me'),
4548
}) }}
4649

47-
<hr>
48-
49-
<a class="btn" href="{{ actionUrl('feed-me/base/clear-tasks') }}">
50-
{{ "Clear pending job queue"|t('feed-me') }}
51-
</a>
52-
5350
{% endnamespace %}
5451

5552
{{ parent() }}

src/templates/utilities/index.html

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{% extends 'feed-me/_layouts' %}
2+
3+
{% set crumbs = [
4+
{ label: craft.feedme.getPluginName|t('feed-me'), url: url('feed-me') },
5+
{ label: "Utilities"|t('feed-me'), url: url('feed-me/utilities') }
6+
] %}
7+
8+
{% set selectedTab = 'utilities' %}
9+
10+
{% block content %}
11+
<a class="btn" href="{{ actionUrl('feed-me/base/clear-tasks') }}">
12+
{{ "Clear pending job queue"|t('feed-me') }}
13+
</a>
14+
{% endblock %}

src/web/twig/variables/FeedMeVariable.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,13 @@ public function getTabs(): array
5858
$tabs = [
5959
'feeds' => ['label' => Craft::t('feed-me', 'Feeds'), 'url' => UrlHelper::cpUrl('feed-me/feeds')],
6060
'logs' => ['label' => Craft::t('feed-me', 'Logs'), 'url' => UrlHelper::cpUrl('feed-me/logs')],
61-
'settings' => ['label' => Craft::t('feed-me', 'Settings'), 'url' => UrlHelper::cpUrl('feed-me/settings')],
61+
'utilities' => ['label' => Craft::t('feed-me', 'Utilities'), 'url' => UrlHelper::cpUrl('feed-me/utilities')],
6262
];
6363

64+
if (Craft::$app->getUser()->getIsAdmin() && Craft::$app->getConfig()->getGeneral()->allowAdminChanges) {
65+
$tabs['settings'] = ['label' => Craft::t('feed-me', 'Settings'), 'url' => UrlHelper::cpUrl('feed-me/settings')];
66+
}
67+
6468
if (!is_array($enabledTabs)) {
6569
return $tabs;
6670
}

0 commit comments

Comments
 (0)