0007_add_oauth2_settings.py 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. # Generated by Django 3.2.15 on 2023-01-04 12:36
  2. from django.db import migrations
  3. from ..hydrators import dehydrate_value
  4. settings = [
  5. {
  6. "setting": "enable_oauth2_client",
  7. "python_type": "bool",
  8. "dry_value": False,
  9. "is_public": True,
  10. },
  11. {"setting": "oauth2_provider", "is_public": True},
  12. {"setting": "oauth2_client_id", "is_public": False},
  13. {"setting": "oauth2_client_secret", "is_public": False},
  14. {"setting": "oauth2_scopes", "is_public": False},
  15. {"setting": "oauth2_login_url", "is_public": False},
  16. {"setting": "oauth2_token_url", "is_public": False},
  17. {"setting": "oauth2_token_method", "dry_value": "POST", "is_public": False},
  18. {"setting": "oauth2_token_extra_headers", "is_public": False},
  19. {
  20. "setting": "oauth2_json_token_path",
  21. "dry_value": "access_token",
  22. "is_public": False,
  23. },
  24. {"setting": "oauth2_user_url", "is_public": False},
  25. {"setting": "oauth2_user_method", "dry_value": "GET", "is_public": False},
  26. {
  27. "setting": "oauth2_user_token_location",
  28. "dry_value": "QUERY",
  29. "is_public": False,
  30. },
  31. {
  32. "setting": "oauth2_user_token_name",
  33. "dry_value": "access_token",
  34. "is_public": False,
  35. },
  36. {"setting": "oauth2_user_extra_headers", "is_public": False},
  37. {
  38. "setting": "oauth2_send_welcome_email",
  39. "python_type": "bool",
  40. "dry_value": False,
  41. "is_public": False,
  42. },
  43. {"setting": "oauth2_json_id_path", "dry_value": "id", "is_public": False},
  44. {"setting": "oauth2_json_name_path", "dry_value": "name", "is_public": False},
  45. {"setting": "oauth2_json_email_path", "dry_value": "email", "is_public": False},
  46. {"setting": "oauth2_json_avatar_path", "is_public": False},
  47. ]
  48. def create_settings(apps, _):
  49. Setting = apps.get_model("misago_conf", "Setting")
  50. for setting in settings:
  51. data = setting.copy()
  52. if "python_type" in data and "dry_value" in data:
  53. data["dry_value"] = dehydrate_value(data["python_type"], data["dry_value"])
  54. Setting.objects.create(**setting)
  55. class Migration(migrations.Migration):
  56. dependencies = [
  57. ("misago_conf", "0006_add_index_message"),
  58. ]
  59. operations = [migrations.RunPython(create_settings)]