mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-17 05:41:25 +02:00
Merge pull request #3617 from modoboa/task/show-custom-rss-feed-superadmins
Added option to display custom RSS feed also to super admins
This commit is contained in:
@@ -145,6 +145,7 @@ class CoreGlobalParametersSerializer(serializers.Serializer):
|
||||
rss_feed_url = serializers.URLField(
|
||||
allow_blank=True, required=False, allow_null=True
|
||||
)
|
||||
show_rss_feed_to_superadmins = serializers.BooleanField(default=False)
|
||||
hide_features_widget = serializers.BooleanField(default=False)
|
||||
|
||||
# Theme settings
|
||||
|
||||
@@ -592,6 +592,12 @@ class NewsFeedAPIViewTestCase(ModoAPITestCase):
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertIn("modoboa", response.json()[0]["link"])
|
||||
|
||||
# Try as superadmin and show_rss_feed_to_superadmins enabled
|
||||
self.set_global_parameter("show_rss_feed_to_superadmins", True)
|
||||
response = self.client.get(url)
|
||||
self.assertEqual(response.status_code, 200)
|
||||
self.assertIn("django", response.json()[0]["link"])
|
||||
|
||||
# Try as domainadmin
|
||||
dadmin = models.User.objects.get(username="admin@test.com")
|
||||
self.authenticate_user(dadmin)
|
||||
|
||||
@@ -210,7 +210,10 @@ class NewsFeedAPIView(APIView):
|
||||
def get(self, request, *args, **kwargs):
|
||||
lang = "fr" if request.user.language == "fr" else "en"
|
||||
feed_url = f"{MODOBOA_WEBSITE_URL}{lang}/weblog/feeds/"
|
||||
if request.user.role != "SuperAdmins":
|
||||
show_rss_feed_to_superadmins = request.localconfig.parameters.get_value(
|
||||
"show_rss_feed_to_superadmins"
|
||||
)
|
||||
if request.user.role != "SuperAdmins" or show_rss_feed_to_superadmins:
|
||||
custom_feed_url = request.localconfig.parameters.get_value("rss_feed_url")
|
||||
if custom_feed_url:
|
||||
feed_url = custom_feed_url
|
||||
|
||||
@@ -499,6 +499,18 @@ GLOBAL_PARAMETERS_STRUCT = collections.OrderedDict(
|
||||
),
|
||||
},
|
||||
),
|
||||
(
|
||||
"show_rss_feed_to_superadmins",
|
||||
{
|
||||
"label": gettext_lazy(
|
||||
"Display custom RSS feed to super admins"
|
||||
),
|
||||
"help_text": gettext_lazy(
|
||||
"Display custom RSS feed also to super administrators"
|
||||
),
|
||||
"widget": "BooleanField",
|
||||
},
|
||||
),
|
||||
(
|
||||
"hide_features_widget",
|
||||
{
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
{% block main_content %}{% endblock %}
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript" src="{% url 'javascript-catalog' %}"></script>
|
||||
{% block extra_js %}{% endblock %}
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
from django.conf import settings
|
||||
from django.contrib.auth import views as auth_views
|
||||
from django.urls import include, path
|
||||
from django.views.i18n import JavaScriptCatalog
|
||||
|
||||
from drf_spectacular.views import (
|
||||
SpectacularJSONAPIView,
|
||||
@@ -13,7 +12,6 @@ from modoboa.core import views as core_views
|
||||
from modoboa.core.extensions import exts_pool
|
||||
|
||||
urlpatterns = [
|
||||
path("jsi18n/", JavaScriptCatalog.as_view(), name="javascript-catalog"),
|
||||
path("", include("modoboa.core.urls")),
|
||||
path(
|
||||
"accounts/password_reset/",
|
||||
|
||||
Reference in New Issue
Block a user