keystone.assignment.backends.sql 模块

class keystone.assignment.backends.sql.Assignment[source]

基类: AssignmentDriverBase

add_role_to_user_and_project(user_id, project_id, role_id)[source]

将角色添加到给定项目中的用户。

引发:

keystone.exception.Conflict – 如果存在重复的角色分配。

check_grant_role_id(role_id, user_id=None, group_id=None, domain_id=None, project_id=None, inherited_to_projects=False)[source]

检查分配/授权的角色 ID。

引发:

keystone.exception.RoleAssignmentNotFound – 如果角色分配不存在。

返回值:

如果没有找到授权,则返回 None 或引发异常

check_system_grant(role_id, actor_id, target_id, inherited)[source]

检查用户或组是否在系统上具有特定角色。

参数:
  • role_id – 要授予用户的角色的唯一 ID

  • actor_id – 用户或组的唯一 ID

  • target_id – 目标的唯一 ID 或字符串

  • inherited – 一个布尔值,表示分配是否继承

create_grant(role_id, user_id=None, group_id=None, domain_id=None, project_id=None, inherited_to_projects=False)[source]

创建一个新的分配/授权。

如果分配到域,则可以选择性地指定它继承到拥有的项目(这需要启用 OS-INHERIT 扩展)。

create_system_grant(role_id, actor_id, target_id, assignment_type, inherited)[source]

将角色授予系统上的用户或组。

参数:
  • role_id – 要授予用户的角色的唯一 ID

  • actor_id – 用户或组的唯一 ID

  • target_id – 目标的唯一 ID 或字符串

  • assignment_type – 描述分配关系的字符串

  • inherited – 一个布尔值,表示分配是否继承

classmethod default_role_driver()[source]
delete_domain_assignments(domain_id)[source]

删除域的所有分配。

delete_grant(role_id, user_id=None, group_id=None, domain_id=None, project_id=None, inherited_to_projects=False)[source]

删除分配/授权。

引发:

keystone.exception.RoleAssignmentNotFound – 如果角色分配不存在。

delete_group_assignments(group_id)[source]

删除组的所有分配。

引发:

keystone.exception.RoleNotFound – 如果角色不存在。

delete_project_assignments(project_id)[source]

删除项目的所有分配。

引发:

keystone.exception.ProjectNotFound – 如果项目不存在。

delete_role_assignments(role_id)[source]

删除角色的所有分配。

delete_system_grant(role_id, actor_id, target_id, inherited)[source]

从用户或组中删除系统分配。

参数:
  • role_id – 要授予用户的角色的唯一 ID

  • actor_id – 用户或组的唯一 ID

  • target_id – 目标的唯一 ID 或字符串

  • inherited – 一个布尔值,表示分配是否继承

delete_user_assignments(user_id)[source]

删除用户的所有分配。

引发:

keystone.exception.RoleNotFound – 如果角色不存在。

list_grant_role_ids(user_id=None, group_id=None, domain_id=None, project_id=None, inherited_to_projects=False)[source]

列出分配/授权的角色 ID。

list_role_assignments(role_id=None, user_id=None, group_ids=None, domain_id=None, project_ids=None, inherited_to_projects=None)[source]

返回参与者在目标上的角色分配列表。

可用的参数表示返回的角色分配属性需要过滤的值。

list_system_grants(actor_id, target_id, assignment_type)[source]

返回特定实体的所有系统分配列表。

参数:
  • actor_id – 参与者的唯一 ID

  • target_id – 目标的唯一 ID

  • assignment_type – 要返回的分配类型

list_system_grants_by_role(role_id)[source]

返回与角色关联的系统分配列表。

参数:

role_id – 要授予用户的角色的唯一 ID

remove_role_from_user_and_project(user_id, project_id, role_id)[source]

从给定项目中的用户中删除角色。

引发:

keystone.exception.RoleNotFound – 如果角色不存在。

class keystone.assignment.backends.sql.AssignmentType[source]

基类: object

GROUP_DOMAIN = 'GroupDomain'
GROUP_PROJECT = 'GroupProject'
USER_DOMAIN = 'UserDomain'
USER_PROJECT = 'UserProject'
classmethod calculate_type(user_id, group_id, project_id, domain_id)[source]
class keystone.assignment.backends.sql.RoleAssignment(*args, **kwargs)[source]

基础: Base, ModelDictMixin

actor_id
attributes = ['type', 'actor_id', 'target_id', 'role_id', 'inherited']
inherited
role_id
target_id
to_dict()[source]

覆盖父类方法,使用更简单的实现。

RoleAssignment 没有非索引的 'extra' 属性,因此父类实现不适用。

type
class keystone.assignment.backends.sql.SystemRoleAssignment(*args, **kwargs)[source]

基础: Base, ModelDictMixin

actor_id
attributes = ['type', 'actor_id', 'target_id', 'role_id', 'inherited']
inherited
role_id
target_id
to_dict()[source]

覆盖父类方法,使用更简单的实现。

RoleAssignment 没有非索引的 'extra' 属性,因此父类实现不适用。

type