123456789101112131415161718192021222324252627282930313233343536373839 |
- # Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
- class Sessions::Event::Maintenance < Sessions::Event::Base
- database_connection_required
- =begin
- Event module to broadcast maintenance messages to all client connections.
- To execute this manually, just paste the following into the browser console
- App.WebSocket.send({event:'maintenance', data: {some: 'key'}})
- =end
- def run
- # check if sender is admin
- return if !permission_check('admin.maintenance', 'maintenance')
- Sessions.broadcast(@payload, 'public', @session['id'])
- # Maintenance mode start/stop messages are not needed for GraphQL, as clients
- # watch on changes of the config settings.
- data = @payload['data']
- return if data['type'] != 'message'
- Gql::ZammadSchema.subscriptions.trigger(
- Gql::Subscriptions::PushMessages.field_name,
- {},
- {
- title: data['head'],
- text: data['message'],
- }
- )
- false
- end
- end
|