Module signals_notebook.users.role
Expand source code
import logging
from typing import cast, Generator, Optional
from pydantic import BaseModel, Field
from signals_notebook.api import SignalsNotebookApi
from signals_notebook.common_types import Response, ResponseData
log = logging.getLogger(__name__)
class Privelege(BaseModel):
can_move_experiments: bool = Field(alias='canMoveExperiments', default=True)
can_manage_system_templates: bool = Field(alias='canManageSystemTemplates', default=True)
can_trash_requests: bool = Field(alias='canTrashRequests', default=True)
can_trash_samples: bool = Field(alias='canTrashSamples', default=True)
can_share: bool = Field(alias='canShare', default=True)
can_add_materials: bool = Field(alias='canAddMaterials', default=True)
can_trash_experiments: bool = Field(alias='canTrashExperiments', default=True)
can_trash_materials: bool = Field(alias='canTrashMaterials', default=True)
can_trash_notebooks: bool = Field(alias='canTrashNotebooks', default=True)
can_view_materials: bool = Field(alias='canViewMaterials', default=True)
can_manage_material_libraries: bool = Field(alias='canManageMaterialLibraries', default=True)
can_share_templates: bool = Field(alias='canShareTemplates', default=True)
can_manage_attributes: bool = Field(alias='canManageAttributes', default=True)
can_manage_groups: bool = Field(alias='canManageGroups', default=True)
can_search_eln_archive: bool = Field(alias='canSearchElnArchive', default=True)
can_configure: bool = Field(alias='canConfigure', default=True)
can_edit_materials: bool = Field(alias='canEditMaterials', default=True)
class Config:
validate_assignment = True
allow_population_by_field_name = True
class Role(BaseModel):
id: str
name: str
description: Optional[str]
privileges: Optional[Privelege]
@classmethod
def _get_endpoint(cls) -> str:
return 'roles'
@classmethod
def get_list(cls) -> Generator['Role', None, None]:
log.debug('Get List of Roles')
api = SignalsNotebookApi.get_default_api()
response = api.call(
method='GET',
path=(cls._get_endpoint(),),
)
result = RoleResponse(**response.json())
yield from [cast(ResponseData, item).body for item in result.data]
log.debug('List of Roles were got successfully.')
@classmethod
def get(cls, role_id: str) -> 'Role':
"""Get role by id
Args:
role_id: Unique role identifier
Returns:
Role
"""
log.debug('Getting Role: ', role_id)
api = SignalsNotebookApi.get_default_api()
response = api.call(
method='GET',
path=(cls._get_endpoint(), role_id),
)
result = RoleResponse(**response.json())
log.debug('Role: %s was got successfully.', role_id)
return cast(ResponseData, result.data).body
class RoleResponse(Response[Role]):
pass
Classes
class Privelege (**data: Any)
-
Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
Expand source code
class Privelege(BaseModel): can_move_experiments: bool = Field(alias='canMoveExperiments', default=True) can_manage_system_templates: bool = Field(alias='canManageSystemTemplates', default=True) can_trash_requests: bool = Field(alias='canTrashRequests', default=True) can_trash_samples: bool = Field(alias='canTrashSamples', default=True) can_share: bool = Field(alias='canShare', default=True) can_add_materials: bool = Field(alias='canAddMaterials', default=True) can_trash_experiments: bool = Field(alias='canTrashExperiments', default=True) can_trash_materials: bool = Field(alias='canTrashMaterials', default=True) can_trash_notebooks: bool = Field(alias='canTrashNotebooks', default=True) can_view_materials: bool = Field(alias='canViewMaterials', default=True) can_manage_material_libraries: bool = Field(alias='canManageMaterialLibraries', default=True) can_share_templates: bool = Field(alias='canShareTemplates', default=True) can_manage_attributes: bool = Field(alias='canManageAttributes', default=True) can_manage_groups: bool = Field(alias='canManageGroups', default=True) can_search_eln_archive: bool = Field(alias='canSearchElnArchive', default=True) can_configure: bool = Field(alias='canConfigure', default=True) can_edit_materials: bool = Field(alias='canEditMaterials', default=True) class Config: validate_assignment = True allow_population_by_field_name = True
Ancestors
- pydantic.main.BaseModel
- pydantic.utils.Representation
Class variables
var Config
var can_add_materials : bool
var can_configure : bool
var can_edit_materials : bool
var can_manage_attributes : bool
var can_manage_groups : bool
var can_manage_material_libraries : bool
var can_manage_system_templates : bool
var can_move_experiments : bool
var can_search_eln_archive : bool
var can_trash_experiments : bool
var can_trash_materials : bool
var can_trash_notebooks : bool
var can_trash_requests : bool
var can_trash_samples : bool
var can_view_materials : bool
class Response[Role] (**kwargs)
-
Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
Ancestors
- Response
- pydantic.generics.GenericModel
- pydantic.main.BaseModel
- pydantic.utils.Representation
- typing.Generic
Subclasses
Class variables
var Config
var data : Union[pydantic.generics.ResponseData[Role], List[pydantic.generics.ResponseData[Role]]]
var links : Optional[Links]
class Role (**data: Any)
-
Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
Expand source code
class Role(BaseModel): id: str name: str description: Optional[str] privileges: Optional[Privelege] @classmethod def _get_endpoint(cls) -> str: return 'roles' @classmethod def get_list(cls) -> Generator['Role', None, None]: log.debug('Get List of Roles') api = SignalsNotebookApi.get_default_api() response = api.call( method='GET', path=(cls._get_endpoint(),), ) result = RoleResponse(**response.json()) yield from [cast(ResponseData, item).body for item in result.data] log.debug('List of Roles were got successfully.') @classmethod def get(cls, role_id: str) -> 'Role': """Get role by id Args: role_id: Unique role identifier Returns: Role """ log.debug('Getting Role: ', role_id) api = SignalsNotebookApi.get_default_api() response = api.call( method='GET', path=(cls._get_endpoint(), role_id), ) result = RoleResponse(**response.json()) log.debug('Role: %s was got successfully.', role_id) return cast(ResponseData, result.data).body
Ancestors
- pydantic.main.BaseModel
- pydantic.utils.Representation
Class variables
var description : Optional[str]
var id : str
var name : str
var privileges : Optional[Privelege]
Static methods
def get(role_id: str) ‑> Role
-
Get role by id
Args
role_id
- Unique role identifier
Returns
Role
Expand source code
@classmethod def get(cls, role_id: str) -> 'Role': """Get role by id Args: role_id: Unique role identifier Returns: Role """ log.debug('Getting Role: ', role_id) api = SignalsNotebookApi.get_default_api() response = api.call( method='GET', path=(cls._get_endpoint(), role_id), ) result = RoleResponse(**response.json()) log.debug('Role: %s was got successfully.', role_id) return cast(ResponseData, result.data).body
def get_list() ‑> Generator[Role, None, None]
-
Expand source code
@classmethod def get_list(cls) -> Generator['Role', None, None]: log.debug('Get List of Roles') api = SignalsNotebookApi.get_default_api() response = api.call( method='GET', path=(cls._get_endpoint(),), ) result = RoleResponse(**response.json()) yield from [cast(ResponseData, item).body for item in result.data] log.debug('List of Roles were got successfully.')
class RoleResponse (**kwargs)
-
Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
Expand source code
class RoleResponse(Response[Role]): pass
Ancestors
- Response[Role]
- Response
- pydantic.generics.GenericModel
- pydantic.main.BaseModel
- pydantic.utils.Representation
- typing.Generic
Class variables
var data : Union[pydantic.generics.ResponseData[Role], List[pydantic.generics.ResponseData[Role]]]
var links : Optional[Links]