def broadcast_message_multifilter(title, message, fromUser=None, ref=None, subject_group=None, filters=None): """ takes a list of filters to broadcast a message. sends one message to each user who matches at least one filter. :param str title: message subject :param str message: message body :param NoneType or str fromUser: sending user :param NoneType or tuple(str, str) ref: ref pair :param NoneType or str subject_group: subject group :param NoneType or list(tuple) filters: list of pairs (organization, flag). if this is None, send to every user. """ if filters is None: filters = [(None, None)] target_users = set() for filter_pair in filters: if filter_pair[0]: organization = _getOrganization(filter_pair[0]) users = User.objects(organization=organization) else: users = User.objects.all() if filter_pair[1]: users = filter(lambda u: filter_pair[1] in u.flags, users) target_users.update([u.name for u in users]) for username in target_users: _getUser(username).send_message(fromUser=fromUser, subject=title, message=message, ref=ref, subject_group=subject_group)
def send_message(toUser, subject, message, fromUser=None, ref=None, subject_group=None): toUser = _getUser(toUser) if fromUser: fromUser = _getUser(fromUser) return toUser.send_message(fromUser=fromUser, subject=subject, message=message, ref=ref, subject_group=subject_group)
def user_check_password(name, password, notify_activity=True): user = _getUser(name, include_notifications=False) if user.checkPassword(password): if notify_activity: user.register_activity() return True else: return False
def notification_set_all_read(username, read=True): user = _getUser(username) return user.notification_set_all_read(read)
def notification_get(username, notificationId): user = _getUser(username) return user.notification_get(notificationId).info()
def user_remove(name): user = _getUser(name) user.remove()
def user_info(name): user = _getUser(name) return user.info()
def user_modify(name, attrs): user = _getUser(name, include_notifications=False) user.modify(**attrs)
def notification_list(username, includeRead=False): user = _getUser(username) return user.notification_list(includeRead)
def user_check_password(name, password): user = _getUser(name) return user.checkPassword(password)
def user_modify_password(name, password): user = _getUser(name, include_notifications=False) return user.modify_password(password)
def user_remove(name): user = _getUser(name, include_notifications=False) user.remove()
def notification_set_read(username, notificationId, read=True): user = _getUser(username) return user.notification_set_read(notificationId, read)
def user_exists(name): if _getUser(name): return True return False
def user_modify_password(name, password): user = _getUser(name) return user.modify_password(password)
def user_modify(name, attrs): user = _getUser(name) user.modify(**attrs)
def user_exists(name): if _getUser(name, include_notifications=False): return True return False