Commit b61d82af897250346b382d1e93602d821de7f6c3
1 parent
0daa3607
Exists in
signals_user_noosfero
Signal to create user into noosfero
Signed-off-by: Simiao Carvalho <simiaosimis@gmail.com> Signed-off-by: Luiz Oliveira <ziuloliveira@gmail.com>
Showing
2 changed files
with
31 additions
and
0 deletions
Show diff stats
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 | ... | ... |