Source code for strongdoc.api.account
from strongdoc import client
from strongdoc import constants
from strongdoc.proto import strongdoc_pb2_grpc, accounts_pb2
# register_organization creates an organization
[docs]def register_organization(org_name, org_addr, admin_name, admin_password, admin_email):
"""
Registers a new organization. A new administrator user will also be created.
New users can be added using this administrator account.
A gRPC connection timeout will be implemented.
:param org_name:
The organization name to create.
:type org_name:
`string`
:param org_addr:
The organization address.
:type org_addr:
`string`
:param admin_name:
The organization administrator name.
:type admin_name:
`string`
:param admin_password:
The organization administrator password.
:type admin_password:
`string`
:param admin_email:
The organization administrator email.
:type admin_email:
`string`
:raises grpc.RpcError:
Raised by the gRPC library to indicate non-OK-status RPC termination.
Returns
-------
orgID: string
The newly created organization ID.
userID: string
The newly created user ID.
"""
with client.connect_to_server_with_no_auth() as no_auth_conn:
client_stub = strongdoc_pb2_grpc.StrongDocServiceStub(no_auth_conn)
request = accounts_pb2.RegisterOrganizationRequest(orgName=org_name,
orgAddr=org_addr, userName=admin_name,
password=admin_password, email=admin_email)
response = client_stub.RegisterOrganization(request, timeout=constants.GRPC_TIMEOUT)
return response.orgID, response.userID
# remove_organization removes an organization
# :returns boolean: Whether the removal was a success
[docs]def remove_organization(token, force):
"""
Removes an organization, deleting all data stored with the organization.
This requires an administrator priviledge.
A gRPC connection timeout will be implemented.
:param token:
The user JWT token.
:type token:
`string`
:param force:
If this is false, removal will fail if there are still data stored with the organization.
This prevents accidental deletion.
:type force:
`bool`
:raises grpc.RpcError:
Raised by the gRPC library to indicate non-OK-status RPC termination.
:returns:
Whether the removal was a success.
:rtype:
`bool`
"""
with client.connect_to_server_with_auth(token) as auth_conn:
client_stub = strongdoc_pb2_grpc.StrongDocServiceStub(auth_conn)
request = accounts_pb2.RemoveOrganizationRequest(force=force)
response = client_stub.RemoveOrganization(request, timeout=constants.GRPC_TIMEOUT)
return response.success