angelos.lib.policy.portfolio¶
Policy classes for document portfolios.
-
class
angelos.lib.policy.portfolio.DocSet(documents: Set[Union[angelos.document.entities.Person, angelos.document.entities.Ministry, angelos.document.entities.Church, angelos.document.entities.PrivateKeys, angelos.document.entities.Keys, angelos.document.profiles.PersonProfile, angelos.document.profiles.MinistryProfile, angelos.document.profiles.ChurchProfile, angelos.document.domain.Domain, angelos.document.domain.Node, angelos.document.domain.Network, angelos.document.statements.Verified, angelos.document.statements.Trusted, angelos.document.statements.Revoked, angelos.document.messages.Note, angelos.document.messages.Instant, angelos.document.messages.Mail, angelos.document.messages.Share, angelos.document.messages.Report, angelos.document.envelope.Envelope]])¶ Bases:
objectClass for sets of documents
-
get_issuer(issuer: uuid.UUID) → Set[Union[angelos.document.entities.Person, angelos.document.entities.Ministry, angelos.document.entities.Church, angelos.document.entities.PrivateKeys, angelos.document.entities.Keys, angelos.document.profiles.PersonProfile, angelos.document.profiles.MinistryProfile, angelos.document.profiles.ChurchProfile, angelos.document.domain.Domain, angelos.document.domain.Node, angelos.document.domain.Network, angelos.document.statements.Verified, angelos.document.statements.Trusted, angelos.document.statements.Revoked, angelos.document.messages.Note, angelos.document.messages.Instant, angelos.document.messages.Mail, angelos.document.messages.Share, angelos.document.messages.Report, angelos.document.envelope.Envelope]]¶ Get all documents of issuer and subtract from set.
-
get_owner(owner: uuid.UUID) → Set[Union[angelos.document.entities.Person, angelos.document.entities.Ministry, angelos.document.entities.Church, angelos.document.entities.PrivateKeys, angelos.document.entities.Keys, angelos.document.profiles.PersonProfile, angelos.document.profiles.MinistryProfile, angelos.document.profiles.ChurchProfile, angelos.document.domain.Domain, angelos.document.domain.Node, angelos.document.domain.Network, angelos.document.statements.Verified, angelos.document.statements.Trusted, angelos.document.statements.Revoked, angelos.document.messages.Note, angelos.document.messages.Instant, angelos.document.messages.Mail, angelos.document.messages.Share, angelos.document.messages.Report, angelos.document.envelope.Envelope]]¶ Get all documents of owner and subtract from set.
-
issuers() → Set[uuid.UUID]¶ Unique set of all the issuers.
-
-
class
angelos.lib.policy.portfolio.PField¶ Bases:
objectDefinition of portfolio fields.
-
DOMAIN= 'domain'¶
-
ENTITY= 'entity'¶
-
ISSUER_REVOKED= 'issuer.revoked'¶
-
ISSUER_TRUSTED= 'issuer.trusted'¶
-
ISSUER_VERIFIED= 'issuer.verified'¶
-
KEYS= 'keys'¶
-
NET= 'network'¶
-
NODE= 'node'¶
-
NODES= 'nodes'¶
-
OWNER_REVOKED= 'owner.revoked'¶
-
OWNER_TRUSTED= 'owner.trusted'¶
-
OWNER_VERIFIED= 'owner.verified'¶
-
PRIVKEYS= 'privkeys'¶
-
PROFILE= 'profile'¶
-
-
class
angelos.lib.policy.portfolio.PGroup¶ Bases:
objectDefinitions of different sets of documents for different purposes.
-
ALL= ('entity', 'profile', 'privkeys', 'keys', 'domain', 'node', 'nodes', 'network', 'issuer.verified', 'issuer.trusted', 'issuer.revoked', 'owner.verified', 'owner.trusted', 'owner.revoked')¶
-
CLIENT= ('entity', 'privkeys', 'keys', 'domain', 'nodes')¶
-
CLIENT_AUTH= ('entity', 'keys', 'network', 'owner.verified', 'owner.trusted')¶
-
ISSUER= ('issuer.verified', 'issuer.trusted', 'issuer.revoked')¶
-
OWNER= ('owner.verified', 'owner.trusted', 'owner.revoked')¶
-
SERVER= ('entity', 'privkeys', 'keys', 'domain', 'nodes', 'network')¶
-
SHARE_MAX_COMMUNITY= ('entity', 'profile', 'keys', 'network', 'owner.verified', 'owner.trusted')¶
-
SHARE_MAX_USER= ('entity', 'profile', 'keys', 'owner.verified', 'owner.trusted')¶
-
SHARE_MED_COMMUNITY= ('entity', 'profile', 'keys', 'network')¶
-
SHARE_MED_USER= ('entity', 'profile', 'keys')¶
-
SHARE_MIN_COMMUNITY= ('entity', 'keys', 'network')¶
-
SHARE_MIN_USER= ('entity', 'keys')¶
-
SIGNER= ('entity', 'privkeys', 'keys')¶
-
VERIFIER= ('entity', 'keys')¶
-
VERIFIER_REVOKED= ('entity', 'keys', 'issuer.revoked')¶
-
-
class
angelos.lib.policy.portfolio.Portfolio¶ Bases:
angelos.lib.policy.types.PortfolioABCDocument portfolio.
A portfolio class holds a set of documents that belongs to an entity. This way it is easy to handle documents related to entities and execute policies and operations that are related.
-
apply_rules()¶
-
from_sets(issuer: Set[Union[angelos.document.entities.Person, angelos.document.entities.Ministry, angelos.document.entities.Church, angelos.document.entities.PrivateKeys, angelos.document.entities.Keys, angelos.document.profiles.PersonProfile, angelos.document.profiles.MinistryProfile, angelos.document.profiles.ChurchProfile, angelos.document.domain.Domain, angelos.document.domain.Node, angelos.document.domain.Network, angelos.document.statements.Verified, angelos.document.statements.Trusted, angelos.document.statements.Revoked, angelos.document.messages.Note, angelos.document.messages.Instant, angelos.document.messages.Mail, angelos.document.messages.Share, angelos.document.messages.Report, angelos.document.envelope.Envelope]] = {}, owner: Set[Union[angelos.document.entities.Person, angelos.document.entities.Ministry, angelos.document.entities.Church, angelos.document.entities.PrivateKeys, angelos.document.entities.Keys, angelos.document.profiles.PersonProfile, angelos.document.profiles.MinistryProfile, angelos.document.profiles.ChurchProfile, angelos.document.domain.Domain, angelos.document.domain.Node, angelos.document.domain.Network, angelos.document.statements.Verified, angelos.document.statements.Trusted, angelos.document.statements.Revoked, angelos.document.messages.Note, angelos.document.messages.Instant, angelos.document.messages.Mail, angelos.document.messages.Share, angelos.document.messages.Report, angelos.document.envelope.Envelope]] = {}) → bool¶ Import documents to portfolio from two sets of docs.
Return True if all documents where imported else False.
-
to_sets()¶ Export documents of portfolio as two sets of docs
-
-
class
angelos.lib.policy.portfolio.PortfolioPolicy¶ Bases:
objectPortfolio load configurations.
-
static
deserialize(data: bytes) → Union[angelos.document.entities.Person, angelos.document.entities.Ministry, angelos.document.entities.Church, angelos.document.entities.PrivateKeys, angelos.document.entities.Keys, angelos.document.profiles.PersonProfile, angelos.document.profiles.MinistryProfile, angelos.document.profiles.ChurchProfile, angelos.document.domain.Domain, angelos.document.domain.Node, angelos.document.domain.Network, angelos.document.statements.Verified, angelos.document.statements.Trusted, angelos.document.statements.Revoked, angelos.document.messages.Note, angelos.document.messages.Instant, angelos.document.messages.Mail, angelos.document.messages.Share, angelos.document.messages.Report, angelos.document.envelope.Envelope]¶ Restore document from stream of bytes.
-
static
doc2fileident(document: Union[angelos.document.entities.Person, angelos.document.entities.Ministry, angelos.document.entities.Church, angelos.document.entities.PrivateKeys, angelos.document.entities.Keys, angelos.document.profiles.PersonProfile, angelos.document.profiles.MinistryProfile, angelos.document.profiles.ChurchProfile, angelos.document.domain.Domain, angelos.document.domain.Node, angelos.document.domain.Network, angelos.document.statements.Verified, angelos.document.statements.Trusted, angelos.document.statements.Revoked, angelos.document.messages.Note, angelos.document.messages.Instant, angelos.document.messages.Mail, angelos.document.messages.Share, angelos.document.messages.Report, angelos.document.envelope.Envelope]) → pathlib.PurePosixPath¶ Translate document into file identifier.
-
static
exports(portfolio: angelos.lib.policy.portfolio.Portfolio) → bytes¶ Export portfolio of documents to bytes.
-
static
factory(assembly: dict) → angelos.lib.policy.portfolio.Portfolio¶ Assemble a portfolio from dictionary.
-
static
imports(data: bytes) → angelos.lib.policy.portfolio.Portfolio¶ Import portfolio of documents from bytes.
-
static
is_importable(portfolio: angelos.lib.policy.portfolio.Portfolio, field: unicode, doc: Union[angelos.document.entities.Person, angelos.document.entities.Ministry, angelos.document.entities.Church, angelos.document.entities.PrivateKeys, angelos.document.entities.Keys, angelos.document.profiles.PersonProfile, angelos.document.profiles.MinistryProfile, angelos.document.profiles.ChurchProfile, angelos.document.domain.Domain, angelos.document.domain.Node, angelos.document.domain.Network, angelos.document.statements.Verified, angelos.document.statements.Trusted, angelos.document.statements.Revoked, angelos.document.messages.Note, angelos.document.messages.Instant, angelos.document.messages.Mail, angelos.document.messages.Share, angelos.document.messages.Report, angelos.document.envelope.Envelope])¶ Test if a document is importable.
In order to be importable the document has to be non-existent in the portfolio.
- Parameters
portfolio –
field –
doc –
Returns:
-
static
is_updatable(portfolio: angelos.lib.policy.portfolio.Portfolio, field: unicode, doc: Union[angelos.document.entities.Person, angelos.document.entities.Ministry, angelos.document.entities.Church, angelos.document.entities.PrivateKeys, angelos.document.entities.Keys, angelos.document.profiles.PersonProfile, angelos.document.profiles.MinistryProfile, angelos.document.profiles.ChurchProfile, angelos.document.domain.Domain, angelos.document.domain.Node, angelos.document.domain.Network, angelos.document.statements.Verified, angelos.document.statements.Trusted, angelos.document.statements.Revoked, angelos.document.messages.Note, angelos.document.messages.Instant, angelos.document.messages.Mail, angelos.document.messages.Share, angelos.document.messages.Report, angelos.document.envelope.Envelope])¶ Test if a document is updatable.
In order to be importable the document has to be existent in the portfolio but newer.
- Parameters
portfolio –
field –
doc –
Returns:
-
static
path2fileident(filename: unicode) → unicode¶ Translate document into file identifier.
-
static
serialize(document: Union[angelos.document.entities.Person, angelos.document.entities.Ministry, angelos.document.entities.Church, angelos.document.entities.PrivateKeys, angelos.document.entities.Keys, angelos.document.profiles.PersonProfile, angelos.document.profiles.MinistryProfile, angelos.document.profiles.ChurchProfile, angelos.document.domain.Domain, angelos.document.domain.Node, angelos.document.domain.Network, angelos.document.statements.Verified, angelos.document.statements.Trusted, angelos.document.statements.Revoked, angelos.document.messages.Note, angelos.document.messages.Instant, angelos.document.messages.Mail, angelos.document.messages.Share, angelos.document.messages.Report, angelos.document.envelope.Envelope]) → bytes¶ “Serialize document into streams of bytes.
-
static
validate(portfolio: angelos.lib.policy.portfolio.Portfolio, config: Tuple[str]) → bool¶ Validate each document from the portfolio in the documents list.
-
static
validate_belonging(portfolio: angelos.lib.policy.portfolio.Portfolio) → bool¶ Validates that all elements belong to entity.
-
static
validate_verify(portfolio: angelos.lib.policy.portfolio.Portfolio) → bool¶ Verify cryptographically the documents.
Validate issuership of all except “owner” docs.
-
static
-
class
angelos.lib.policy.portfolio.PrivatePortfolio¶ Bases:
angelos.lib.policy.portfolio.Portfolio,angelos.lib.policy.types.PrivatePortfolioABCAdds private keys to Document portfolio.
-
apply_rules()¶
-
classmethod
factory(issuer: set, owner: set) → angelos.lib.policy.portfolio.PrivatePortfolio¶
-
to_portfolio() → angelos.lib.policy.portfolio.Portfolio¶ Get portfolio of private.
-