跳转到主要内容

Django terralego 应用程序账户管理

项目描述

Build Status codecov Maintainability

django-terra-accounts

Django terralego 应用程序账户管理

https://django-terra-accounts.readthedocs.io/

警告

  • 从terracommon.accounts分离

  • 如果您想迁移数据,请在

    • 本地环境中测试
      • 所有terracommon.accounts引用应替换为terra_accounts
      • 所有引用'accounts'迁移的迁移文件应引用'terra_accounts'
    • 备份您的实例
    • 停止实例
    • 更新您的django_content_type表
      • UPDATE django_content_type SET app_label = 'terra_accounts' WHERE app_label = 'account';
    • 更新您的django_migrations表
      • 更新django_migrations表,将app设置为'terra_accounts',条件是app为'account';
    • 重命名表
      • ALTER TABLE accounts_terrauser RENAME TO terra_accounts_terrauser;
      • ALTER TABLE accounts_readmodels RENAME TO terra_accounts_readmodel;
    • 重启实例并启动迁移

设置

如果您不知道这个应用程序是如何工作的,建议您遵循所有说明,否则如果您只设置了其中的一半,您可能会遇到一些问题。

Django应用程序和URL

如果您计划使用用户API进行身份验证、注册等其他操作,应将terra_accounts应用程序添加到INSTALLED_APPS中,

INSTALLED_APPS = (
  [...],
  'terra_accounts',
)

并将terra_accounts的URL包含到您的项目urls中,通过添加以下内容

path("", include("terra_accounts.urls")),

用户模型

要设置Terra用户模型,您应遵循标准的django程序,通过将以下内容添加到您的项目设置中

AUTH_USER_MODEL = 'terra_accounts.TerraUser'

有效载荷处理器

您还应覆盖jwt令牌的默认有效载荷处理器,设置如下

JWT_AUTH = {
  'JWT_PAYLOAD_HANDLER' 'terra_accounts.jwt_payload.terra_payload_handler',
}

权限混合

如果您计划使用从django Permission类继承的权限机制,您应将权限混合添加到您的appconfig中。

以下是一个AppConfig示例

from django.apps import AppConfig

from terra_accounts.permissions_mixins import PermissionRegistrationMixin


class MyAppConfig(PermissionRegistrationMixin, AppConfig):
    name = 'my_app'

    permissions = (
        ('can_do_something', 'Is able to do something'),
        ('can_do_whatever', 'Is able to do whatever'),
    )

权限混合覆盖了ready()方法以注册一个信号。如果您计划覆盖此方法,请记住添加对super().ready()的调用

启动开发实例

test_geosource django项目中定义您想要的设置。

docker-compose up

第一次启动应失败,因为数据库需要初始化。只需运行两次相同的命令即可。

然后初始化数据库

docker-compose run web /code/venv/bin/python3 /code/src/manage.py migrate

现在您可以编辑您的代码。Django runserver会自动启动,因此这是一个自动重新加载的服务器。

您可以通过http://localhost:8000/api/访问API

测试

要运行测试套件,只需启动

docker-compose run web /code/venv/bin/python3 /code/src/manage.py test

更改日志

1.0.7 (2021-05-07)

  • 修复缺少迁移(并在CI中检查迁移)

1.0.6 (2021-05-07)

  • 修复在设置中未定义disabled_module的情况

1.0.5 (2021-04-22)

  • 添加管理器以过滤具有disabled_modules设置的权限(#41)

1.0.4 (2021-04-13)

  • 修复从客户端推送terra_permisisions时的错误
  • 过滤模块权限

1.0.3 (2020-02-16)

  • 翻译权限标签

1.0.2 (2021-01-20)

  • 权限不再由序列化器对TerraUser强制要求
  • 组权限通过序列化器中的permission_list字段设置为读取操作,并通过permission设置为写入操作

1.0.1 (2020-11-24)

  • 回滚terra-settings功能

1.0.0 (2020-11-18)

  • !! 警告:破坏性更改 !!

  • 更改和修复获取用户Terra模块的方式

0.5.1 (2020-11-16)

  • 获取所有/用户可用功能权限的端点

0.5.0 (2020-11-03)

  • 破坏性更改
    • 现在已从terra-accounts设置端点移除,以支持terra-settings设置端点
    • 与django-terra-settings一起使用,而不是django-terra-utils
    • 请更新您的项目需求和代码以使用新的terra-settings应用程序。
    • 删除过时的用户视图集/序列化器/信息端点

0.3.13 (2020-09-08)

  • 正式支持Django 3.1

0.3.12 (2020-08-25)

  • 使用django.db.models.JSONField而不是django.contrib.postgres.fields
  • 新的DjangoModelFactory位置

0.3.11 (2020-06-24)

  • 修复TERRA_APPLIANCE_SETTINGS对设置的覆盖

0.3.10 (2020-06-03)

  • 将设置端点从terra_utils移动
  • 从实例定义的语言提供服务

0.3.9 (2020-03-20)

  • 管理重置密码视图

0.3.8 (2019-12-13)

  • 更新文档
  • 支持Django 3.0
  • 支持DjangoRestFramework 3.11

0.3.7.1 (2019-11-26)

  • 将组继承的权限包含到用户中
  • 改进Terra权限创建

0.3.6 (2019-11-05)

  • 添加一个方法来检查用户是否有某些Terra权限

0.3.5 (2019-11-04)

  • 实现TerraPermissions

0.3.4 (2019-10-08)

  • 弃用通过id查找用户(将在0.4.0中删除)

0.3.3 (2019-10-03)

功能

  • 现在包含在打包中的测试工厂

0.3.2 (2019-09-27)

修复

  • 组必须是DRF标准属性

0.3.1 (2019-09-26)

修复

  • 修复Group序列化器(和API)中的id

0.3.0 (2019-09-25)

破坏性更改

  • 应用程序名称从accounts移动到terra_accounts。结构相同,因此备份和恢复您的数据

第一个公开标签

  • Terra应用程序从teracommon.accounts中提取出来

项目详细信息


下载文件

下载适合您平台的文件。如果您不确定选择哪一个,请了解有关安装包的更多信息。

源代码发行版

django-terra-accounts-1.0.7.tar.gz (17.0 kB 查看哈希值)

上传时间 源代码

支持