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,23 +14,29 @@ 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: # Create or update Algolia index for the user
roles = set() index_users.save_object({
if current_app.algolia_index_users: 'objectID': user['_id'],
# Create or update Algolia index for the user 'full_name': user['full_name'],
current_app.algolia_index_users.save_object({ 'username': user['username'],
'objectID': user['_id'], 'roles': list(index_roles),
'full_name': user['full_name'], 'groups': user['groups'],
'username': user['username'], 'email': user['email']
'roles': list(roles), })
'groups': user['groups'],
'email': user['email'] log.debug('Pushed user %r to Algolia index %r', user['_id'], index_users.index_name)
})
@skip_when_testing @skip_when_testing