diff --git a/src/colab-spb-plugin/src/colab_spb/apps.py b/src/colab-spb-plugin/src/colab_spb/apps.py index cc244ca..bdefc80 100644 --- a/src/colab-spb-plugin/src/colab_spb/apps.py +++ b/src/colab-spb-plugin/src/colab_spb/apps.py @@ -2,6 +2,7 @@ from django.apps import AppConfig from colab.signals.signals import connect_signal, register_signal from celery.utils.log import get_task_logger from colab_spb.tasks import list_group_and_repository_creation +from colab_spb.tasks import create_noosfero_user logger = get_task_logger(__name__) @@ -21,3 +22,5 @@ class SpbAppConfig(AppConfig): def connect_signal(self): connect_signal('community_creation', 'noosfero', list_group_and_repository_creation) + connect_signal('create_noosfero_user', + 'noosfero', create_noosfero_user) diff --git a/src/colab-spb-plugin/src/colab_spb/tasks.py b/src/colab-spb-plugin/src/colab_spb/tasks.py index 0a40a4a..90e8dcb 100644 --- a/src/colab-spb-plugin/src/colab_spb/tasks.py +++ b/src/colab-spb-plugin/src/colab_spb/tasks.py @@ -143,6 +143,34 @@ def create_project(project_name, group_id): @app.task(bind=True) +def create_noosfero_user(self, **kwargs): + """ Create a Noosfero User """ + app_config = settings.COLAB_APPS.get('colab_noosfero', {}) + upstream = app_config.get('upstream', '').rstrip('/') + username = kwargs['username'] + email = kwargs['email'] + password = kwargs['password'] + + users_endpoint = '{}/api/v1/register'.format(upstream) + logger.info('Connected with ' + users_endpoint) + params = { + 'login': username, + 'email': email, + 'password': password, + 'password_confirmation': password, + } + try: + requests.post(users_endpoint, params=params) + except Exception as excpt: + error_msg = u'Error to create user "%s" into Noosfero. Reason: %s' + reason = 'Request to API failed ({})'.format(excpt) + logger.error(error_msg, username, reason) + return + logger.info('User created: {0}'.format(''.join(kwargs))) + return 0 + + +@app.task(bind=True) def list_group_and_repository_creation(self, **kwargs): logger.info('Community created: {0}'.format(''.join(kwargs))) -- libgit2 0.21.2