Commit b61d82af897250346b382d1e93602d821de7f6c3

Authored by Luiz Oliveira
1 parent 0daa3607

Signal to create user into noosfero

Signed-off-by: Simiao Carvalho <simiaosimis@gmail.com>
Signed-off-by: Luiz Oliveira <ziuloliveira@gmail.com>
src/colab-spb-plugin/src/colab_spb/apps.py
... ... @@ -2,6 +2,7 @@ from django.apps import AppConfig
2 2 from colab.signals.signals import connect_signal, register_signal
3 3 from celery.utils.log import get_task_logger
4 4 from colab_spb.tasks import list_group_and_repository_creation
  5 +from colab_spb.tasks import create_noosfero_user
5 6  
6 7 logger = get_task_logger(__name__)
7 8  
... ... @@ -21,3 +22,5 @@ class SpbAppConfig(AppConfig):
21 22 def connect_signal(self):
22 23 connect_signal('community_creation', 'noosfero',
23 24 list_group_and_repository_creation)
  25 + connect_signal('create_noosfero_user',
  26 + 'noosfero', create_noosfero_user)
... ...
src/colab-spb-plugin/src/colab_spb/tasks.py
... ... @@ -143,6 +143,34 @@ def create_project(project_name, group_id):
143 143  
144 144  
145 145 @app.task(bind=True)
  146 +def create_noosfero_user(self, **kwargs):
  147 + """ Create a Noosfero User """
  148 + app_config = settings.COLAB_APPS.get('colab_noosfero', {})
  149 + upstream = app_config.get('upstream', '').rstrip('/')
  150 + username = kwargs['username']
  151 + email = kwargs['email']
  152 + password = kwargs['password']
  153 +
  154 + users_endpoint = '{}/api/v1/register'.format(upstream)
  155 + logger.info('Connected with ' + users_endpoint)
  156 + params = {
  157 + 'login': username,
  158 + 'email': email,
  159 + 'password': password,
  160 + 'password_confirmation': password,
  161 + }
  162 + try:
  163 + requests.post(users_endpoint, params=params)
  164 + except Exception as excpt:
  165 + error_msg = u'Error to create user "%s" into Noosfero. Reason: %s'
  166 + reason = 'Request to API failed ({})'.format(excpt)
  167 + logger.error(error_msg, username, reason)
  168 + return
  169 + logger.info('User created: {0}'.format(''.join(kwargs)))
  170 + return 0
  171 +
  172 +
  173 +@app.task(bind=True)
146 174 def list_group_and_repository_creation(self, **kwargs):
147 175 logger.info('Community created: {0}'.format(''.join(kwargs)))
148 176  
... ...