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 | ... | ... |