Algolia user push: simplified & streamlined the code a bit.

This commit is contained in:
2017-06-01 15:45:00 +02:00
parent 2b36b4c514
commit f152521041

View File

@@ -14,24 +14,30 @@ INDEX_ALLOWED_NODE_TYPES = {'asset', 'texture', 'group', 'hdri'}
@skip_when_testing @skip_when_testing
def algolia_index_user_save(user): def algolia_index_user_save(user):
if 'roles' in user and 'service' in user['roles']: index_users = current_app.algolia_index_users
if not index_users:
log.debug('No Algolia index defined, so nothing to do.')
return return
user_roles = set(user.get('roles', ()))
if 'service' in user_roles:
return
# Strip unneeded roles # Strip unneeded roles
if 'roles' in user: index_roles = user_roles.intersection(INDEX_ALLOWED_USER_ROLES)
roles = set(user['roles']).intersection(INDEX_ALLOWED_USER_ROLES)
else:
roles = set()
if current_app.algolia_index_users:
# Create or update Algolia index for the user # Create or update Algolia index for the user
current_app.algolia_index_users.save_object({ index_users.save_object({
'objectID': user['_id'], 'objectID': user['_id'],
'full_name': user['full_name'], 'full_name': user['full_name'],
'username': user['username'], 'username': user['username'],
'roles': list(roles), 'roles': list(index_roles),
'groups': user['groups'], 'groups': user['groups'],
'email': user['email'] 'email': user['email']
}) })
log.debug('Pushed user %r to Algolia index %r', user['_id'], index_users.index_name)
@skip_when_testing @skip_when_testing
def algolia_index_node_save(node): def algolia_index_node_save(node):