Fix of the Notifications Funktions and the notifications system in generell in regarts to the Vapid key handeling
This commit is contained in:
+4
-6
@@ -10376,18 +10376,15 @@ def my_borrowed_items():
|
||||
@app.route('/notifications')
|
||||
def notifications_view():
|
||||
"""Notification center for users and admins."""
|
||||
from Web.push_notifications import _get_vapid_public
|
||||
if 'username' not in session:
|
||||
flash('Bitte melden Sie sich an, um Benachrichtigungen zu sehen.', 'error')
|
||||
return redirect(url_for('login'))
|
||||
|
||||
username = session['username']
|
||||
is_admin_user = False
|
||||
current_permissions = us.get_effective_permissions(session['username'])
|
||||
|
||||
if not current_permissions['actions'].get('can_manage_settings', False):
|
||||
is_admin_user = True
|
||||
else:
|
||||
is_admin_user = False
|
||||
|
||||
is_admin_user = current_permissions['actions'].get('can_manage_settings', False)
|
||||
|
||||
client = None
|
||||
try:
|
||||
@@ -10421,6 +10418,7 @@ def notifications_view():
|
||||
is_admin_user=is_admin_user,
|
||||
library_module_enabled=cfg.MODULES.is_enabled('library'),
|
||||
student_cards_module_enabled=cfg.MODULES.is_enabled('student_cards'),
|
||||
vapid_public_key=_get_vapid_public()
|
||||
)
|
||||
except Exception as exc:
|
||||
app.logger.error(f"Error loading notifications: {exc}")
|
||||
|
||||
@@ -60,6 +60,9 @@ VAPID_SUBJECT = os.getenv('VAPID_SUBJECT', 'mailto:support@invario-software.de')
|
||||
FCM_API_KEY = os.getenv('FCM_API_KEY', '')
|
||||
|
||||
|
||||
def _get_vapid_public():
|
||||
return VAPID_PUBLIC_KEY
|
||||
|
||||
def _get_username_hash(username):
|
||||
"""Generates a deterministic hash for database lookups."""
|
||||
if not username:
|
||||
|
||||
@@ -324,7 +324,7 @@ const pushNotificationManager = new PushNotificationManager();
|
||||
/**
|
||||
* Show notification subscription UI (typically in settings)
|
||||
*/
|
||||
function showPushNotificationSettings() {
|
||||
function showPushNotificationSettings(vapidPublicKey) {
|
||||
const container = document.getElementById('push-notification-settings');
|
||||
if (!container) return;
|
||||
|
||||
@@ -350,9 +350,9 @@ function showPushNotificationSettings() {
|
||||
|
||||
container.innerHTML = html;
|
||||
|
||||
// Set up button handler
|
||||
// Set up button handler and pass the VAPID public key to init()
|
||||
const toggleBtn = document.getElementById('toggle-push-btn');
|
||||
pushNotificationManager.init().then(() => {
|
||||
pushNotificationManager.init(vapidPublicKey).then(() => {
|
||||
updatePushStatus();
|
||||
});
|
||||
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
if (typeof showPushNotificationSettings === 'function') {
|
||||
showPushNotificationSettings();
|
||||
showPushNotificationSettings('{{ vapid_public_key }}');
|
||||
}
|
||||
});
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user