mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-18 05:51:26 +02:00
@@ -757,8 +757,7 @@ inside the top bar).
|
||||
|
||||
def callback(user, include_all): pass
|
||||
|
||||
* ``user`` is a ``User`` instance corresponding to the currently
|
||||
logged in user
|
||||
* ``request`` is a ``Request`` instance
|
||||
* ``include_all`` is a boolean indicating if empty notifications must
|
||||
be included into the result or not
|
||||
|
||||
|
||||
@@ -70,15 +70,15 @@ def unset_default_topredirection(extension):
|
||||
|
||||
|
||||
@events.observe("TopNotifications")
|
||||
def check_for_new_version(user, include_all):
|
||||
def check_for_new_version(request, include_all):
|
||||
"""
|
||||
Check if a new version of Modoboa is available.
|
||||
"""
|
||||
from modoboa.core.utils import new_version_available
|
||||
|
||||
if not user.is_superuser:
|
||||
if not request.user.is_superuser:
|
||||
return []
|
||||
if new_version_available() is None:
|
||||
if new_version_available(request) is None:
|
||||
return [{"id": "newversionavailable"}] if include_all else []
|
||||
return [{
|
||||
"id": "newversionavailable",
|
||||
|
||||
@@ -14,5 +14,5 @@ def top_notifications(request):
|
||||
"notifications_check_interval":
|
||||
int(parameters.get_admin("TOP_NOTIFICATIONS_CHECK_INTERVAL")) * 1000,
|
||||
"top_notifications": events.raiseQueryEvent(
|
||||
"TopNotifications", request.user, False)
|
||||
"TopNotifications", request, False)
|
||||
}
|
||||
|
||||
@@ -9,21 +9,25 @@ from requests.exceptions import RequestException
|
||||
|
||||
from django.conf import settings
|
||||
|
||||
from django.contrib.sites.models import get_current_site
|
||||
|
||||
from versionfield.constants import DEFAULT_NUMBER_BITS
|
||||
from versionfield.version import Version
|
||||
|
||||
from modoboa.lib import parameters
|
||||
|
||||
|
||||
def new_version_available():
|
||||
def new_version_available(request):
|
||||
"""Check if a new version of Modoboa is available."""
|
||||
if parameters.get_admin("CHECK_NEW_VERSIONS") == "no":
|
||||
return None
|
||||
local_version = pkg_resources.get_distribution("modoboa").version
|
||||
url = os.path.join(settings.MODOBOA_API_URL, "current_version/")
|
||||
site = get_current_site(request)
|
||||
try:
|
||||
resp = requests.get(url, params={
|
||||
"client_version": pkg_resources.get_distribution("modoboa").version
|
||||
"client_version": pkg_resources.get_distribution("modoboa").version,
|
||||
"client_site": site
|
||||
})
|
||||
except RequestException:
|
||||
return None
|
||||
|
||||
@@ -162,5 +162,5 @@ def check_top_notifications(request):
|
||||
AJAX service to check for new top notifications to display.
|
||||
"""
|
||||
return render_to_json_response(
|
||||
events.raiseQueryEvent("TopNotifications", request.user, True)
|
||||
events.raiseQueryEvent("TopNotifications", request, True)
|
||||
)
|
||||
|
||||
@@ -128,17 +128,17 @@ $(document).bind('domform_init', function() {
|
||||
|
||||
|
||||
@events.observe("TopNotifications")
|
||||
def check_for_pending_requests(user, include_all):
|
||||
def check_for_pending_requests(request, include_all):
|
||||
"""
|
||||
Check if release requests are pending.
|
||||
"""
|
||||
from .sql_connector import get_connector
|
||||
|
||||
if parameters.get_admin("USER_CAN_RELEASE") == "yes" \
|
||||
or user.group == "SimpleUsers":
|
||||
or request.user.group == "SimpleUsers":
|
||||
return []
|
||||
|
||||
nbrequests = get_connector(user=user).get_pending_requests()
|
||||
nbrequests = get_connector(user=request.user).get_pending_requests()
|
||||
if not nbrequests:
|
||||
return [{"id": "nbrequests", "counter": 0}] if include_all \
|
||||
else []
|
||||
|
||||
Reference in New Issue
Block a user