|
5 | 5 | from logging import Logger |
6 | 6 | from urllib import parse |
7 | 7 |
|
8 | | -import requests |
9 | 8 | from django.conf import settings |
10 | 9 |
|
11 | 10 | _key_bytes = settings.DISCOURSE_SSO_SECRET.encode('utf-8') |
@@ -43,37 +42,6 @@ def generate_discourse_login_url(user, payload, signature): |
43 | 42 | return _generate_discourse_login_url(nonce, user) |
44 | 43 |
|
45 | 44 |
|
46 | | -def sync_user(user): |
47 | | - """ |
48 | | - Synchronize user data on forum if API is set |
49 | | - :param user: Django user |
50 | | - :return: returns nothing |
51 | | - """ |
52 | | - can_make_api_call = bool(settings.DISCOURSE_API_KEY and settings.DISCOURSE_API_USER) |
53 | | - can_work_without_sync = not (settings.DISCOURSE_BASE_URL or can_make_api_call) |
54 | | - if can_work_without_sync: |
55 | | - return |
56 | | - elif not can_make_api_call: |
57 | | - raise MissingDiscourseAPICredentials('Must define both DISCOURSE_API_KEY and DISCOURSE_API_USER configs') |
58 | | - # https://meta.discourse.org/t/sync-sso-user-data-with-the-sync-sso-route/84398 |
59 | | - params = { |
60 | | - 'email': user.email, |
61 | | - 'external_id': user.id, |
62 | | - 'require_activation': 'false', |
63 | | - 'groups': ','.join(g.name for g in user.groups.all()) |
64 | | - } |
65 | | - sso_payload, signature = generate_sso_payload_and_signature(params) |
66 | | - # query_string = parse.urlencode() |
67 | | - url = f'{settings.DISCOURSE_BASE_URL}/admin/users/sync_sso' |
68 | | - headers = { |
69 | | - 'content-type': 'multipart/form-data', |
70 | | - 'Api-Key': settings.DISCOURSE_API_KEY, |
71 | | - 'Api-Username': settings.DISCOURSE_API_USER, |
72 | | - } |
73 | | - |
74 | | - return requests.post(url, data={'sso': sso_payload, 'sig': signature}, headers=headers) |
75 | | - |
76 | | - |
77 | 45 | def _generate_discourse_login_url(nonce, user): |
78 | 46 | params = { |
79 | 47 | 'nonce': nonce, |
|
0 commit comments