mirror of
https://github.com/nikdoof/test-auth.git
synced 2026-01-30 16:08:14 +00:00
More flexable broadcasting, broken by server/group/user on the api level
This commit is contained in:
@@ -264,7 +264,9 @@ class AnnounceHandler(BaseHandler):
|
|||||||
def read(self, request):
|
def read(self, request):
|
||||||
|
|
||||||
sid = request.GET.get('sid', None)
|
sid = request.GET.get('sid', None)
|
||||||
to = request.GET.getlist('to')
|
users = request.GET.getlist('users')
|
||||||
|
groups = request.GET.getlist('groups')
|
||||||
|
servers = request.GET.getlist('servers')
|
||||||
message = request.GET.get('message', None)
|
message = request.GET.get('message', None)
|
||||||
subject = request.GET.get('subject', None)
|
subject = request.GET.get('subject', None)
|
||||||
|
|
||||||
@@ -275,6 +277,6 @@ class AnnounceHandler(BaseHandler):
|
|||||||
return {'result': 'invalid'}
|
return {'result': 'invalid'}
|
||||||
|
|
||||||
api = srv.api_class
|
api = srv.api_class
|
||||||
return {'result': api.announce(api.settings['jabber_server'], message, subject, groups=to)}
|
return {'result': api.announce(api.settings['jabber_server'], message, subject, users=users, groups=groups, servers=servers) }
|
||||||
|
|
||||||
return {'result': 'invalid'}
|
return {'result': 'invalid'}
|
||||||
|
|||||||
@@ -162,23 +162,24 @@ class JabberService(BaseService):
|
|||||||
|
|
||||||
return resp.read().strip()[:2] == 'OK'
|
return resp.read().strip()[:2] == 'OK'
|
||||||
|
|
||||||
def announce(self, server, message, subject=None, users=[], groups=[]):
|
def announce(self, server, message, subject=None, users=[], groups=[], servers=[]):
|
||||||
|
|
||||||
if 'all' in groups:
|
dest = []
|
||||||
dest = ['%s/announce/online' % server for server in self.settings['jabber_announce_servers']]
|
if len(severs):
|
||||||
else:
|
if 'all' in servers:
|
||||||
dest = []
|
dest = ['%s/announce/all-hosts/online' % self.settings['jabber_server']]
|
||||||
|
else:
|
||||||
|
dest = ['%s/announce/online' % server for server in servers]
|
||||||
|
|
||||||
if len(users):
|
if len(users):
|
||||||
for u in set(users):
|
for u in set(users):
|
||||||
dest.append(u)
|
dest.append(u)
|
||||||
|
|
||||||
elif len(groups):
|
if len(groups):
|
||||||
for g in groups:
|
for g in groups:
|
||||||
dest.extend([x for x in self.get_group_members(server, g)])
|
dest.extend([x for x in self.get_group_members(server, g)])
|
||||||
|
|
||||||
dest = set(dest)
|
|
||||||
|
|
||||||
|
dest = set(dest)
|
||||||
if len(dest):
|
if len(dest):
|
||||||
return self.send_message(dest, message, subject)
|
return self.send_message(dest, message, subject)
|
||||||
return False
|
return False
|
||||||
|
|||||||
Reference in New Issue
Block a user