Merge branch 'dpp' into dpp_upc
This commit is contained in:
commit
2a6cc105e3
|
@ -0,0 +1,24 @@
|
|||
import click
|
||||
|
||||
from ereuse_devicehub.db import db
|
||||
from ereuse_devicehub.resources.agent.models import Person
|
||||
from ereuse_devicehub.resources.user.models import User
|
||||
|
||||
|
||||
class AddUser:
|
||||
def __init__(self, app) -> None:
|
||||
super().__init__()
|
||||
self.app = app
|
||||
self.schema = app.config.get('DB_SCHEMA')
|
||||
self.app.cli.command('adduser', short_help='add a user.')(self.run)
|
||||
|
||||
@click.argument('email')
|
||||
@click.argument('password')
|
||||
def run(self, email, password):
|
||||
name = email.split('@')[0]
|
||||
|
||||
user = User(email=email, password=password)
|
||||
user.individuals.add(Person(name=name))
|
||||
db.session.add(user)
|
||||
|
||||
db.session.commit()
|
|
@ -0,0 +1,40 @@
|
|||
from uuid import uuid4
|
||||
|
||||
from boltons.urlutils import URL
|
||||
|
||||
from ereuse_devicehub.db import db
|
||||
from ereuse_devicehub.resources.agent.models import Person
|
||||
from ereuse_devicehub.resources.inventory.model import Inventory
|
||||
from ereuse_devicehub.resources.user.models import User
|
||||
|
||||
|
||||
class InitDatas:
|
||||
def __init__(self, app) -> None:
|
||||
super().__init__()
|
||||
self.app = app
|
||||
self.schema = app.config.get('DB_SCHEMA')
|
||||
self.app.cli.command(
|
||||
'initdata', short_help='Save a minimum structure of datas.'
|
||||
)(self.run)
|
||||
|
||||
def run(self):
|
||||
inv = Inventory(
|
||||
id=self.schema,
|
||||
name="usody",
|
||||
tag_provider=URL('http://localhost:8081'),
|
||||
tag_token=uuid4(),
|
||||
org_id=uuid4(),
|
||||
)
|
||||
|
||||
db.session.add(inv)
|
||||
db.session.commit()
|
||||
|
||||
email = 'user@dhub.com'
|
||||
password = '1234'
|
||||
name = 'user'
|
||||
|
||||
user = User(email=email, password=password)
|
||||
user.individuals.add(Person(name=name))
|
||||
db.session.add(user)
|
||||
|
||||
db.session.commit()
|
|
@ -12,6 +12,8 @@ from flask_sqlalchemy import SQLAlchemy
|
|||
import ereuse_devicehub.ereuse_utils.cli
|
||||
from ereuse_devicehub.auth import Auth
|
||||
from ereuse_devicehub.client import Client, UserClient
|
||||
from ereuse_devicehub.commands.adduser import AddUser
|
||||
from ereuse_devicehub.commands.initdatas import InitDatas
|
||||
|
||||
# from ereuse_devicehub.commands.reports import Report
|
||||
from ereuse_devicehub.commands.users import GetToken
|
||||
|
@ -31,6 +33,21 @@ try:
|
|||
except Exception:
|
||||
GetMembers = None
|
||||
|
||||
try:
|
||||
from ereuse_devicehub.modules.dpp.commands.register_user_dlt import RegisterUserDlt
|
||||
except Exception:
|
||||
RegisterUserDlt = None
|
||||
|
||||
try:
|
||||
from ereuse_devicehub.modules.oidc.commands.add_member import AddMember
|
||||
except Exception:
|
||||
AddMember = None
|
||||
|
||||
try:
|
||||
from ereuse_devicehub.modules.oidc.commands.add_member import AddClientOidc
|
||||
except Exception:
|
||||
AddClientOidc = None
|
||||
|
||||
|
||||
class Devicehub(Teal):
|
||||
test_client_class = Client
|
||||
|
@ -78,8 +95,17 @@ class Devicehub(Teal):
|
|||
self.dummy = Dummy(self)
|
||||
# self.report = Report(self)
|
||||
self.get_token = GetToken(self)
|
||||
self.initdata = InitDatas(self)
|
||||
self.adduser = AddUser(self)
|
||||
|
||||
if GetMembers:
|
||||
self.get_members = GetMembers(self)
|
||||
if RegisterUserDlt:
|
||||
self.register_user_dlt = RegisterUserDlt(self)
|
||||
if AddMember:
|
||||
self.register_user_dlt = AddMember(self)
|
||||
if AddClientOidc:
|
||||
self.register_user_dlt = AddClientOidc(self)
|
||||
|
||||
@self.cli.group(
|
||||
short_help='Inventory management.',
|
||||
|
|
|
@ -8,12 +8,11 @@ Create Date: 2020-05-07 10:04:40.269511
|
|||
import citext
|
||||
import sqlalchemy as sa
|
||||
import sqlalchemy_utils
|
||||
from ereuse_devicehub import teal
|
||||
from alembic import context
|
||||
from alembic import op
|
||||
from alembic import context, op
|
||||
from sqlalchemy.dialects import postgresql
|
||||
|
||||
from ereuse_devicehub.resources.enums import TransferState, Severity
|
||||
from ereuse_devicehub import teal
|
||||
from ereuse_devicehub.resources.enums import Severity, TransferState
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
revision = 'fbb7e2a0cde0'
|
||||
|
@ -348,6 +347,7 @@ def upgrade():
|
|||
postgresql_using='hash',
|
||||
schema=f'{get_inv()}',
|
||||
)
|
||||
op.execute(f"CREATE SEQUENCE {get_inv()}.device_seq START 1;")
|
||||
op.create_table(
|
||||
'agent',
|
||||
sa.Column(
|
||||
|
|
|
@ -138,7 +138,7 @@ class User(UserMixin, Thing):
|
|||
data = json.dumps(data)
|
||||
self.api_keys_dlt = encrypt(password, data)
|
||||
|
||||
def allow_permitions(self, api_token=None):
|
||||
def allow_permitions(self, api_token=None, rols="Operator"):
|
||||
if 'dpp' not in app.blueprints.keys():
|
||||
return
|
||||
|
||||
|
@ -152,22 +152,25 @@ class User(UserMixin, Thing):
|
|||
|
||||
apiUser1 = API(api_dlt, keyUser1, "ethereum")
|
||||
|
||||
result = apiUser1.issue_credential("Operator", target_user)
|
||||
for rol in rols.split(","):
|
||||
result = apiUser1.issue_credential(rol.strip(), target_user)
|
||||
return result
|
||||
|
||||
def get_rols(self):
|
||||
if session.get('rols'):
|
||||
return session.get('rols')
|
||||
def get_rols_dlt(self):
|
||||
return json.loads(self.rols_dlt)
|
||||
|
||||
def get_rols(self, token_dlt=None):
|
||||
|
||||
if 'dpp' not in app.blueprints.keys():
|
||||
return []
|
||||
|
||||
if not session.get('token_dlt'):
|
||||
return []
|
||||
if not token_dlt:
|
||||
token_dlt = session.get('token_dlt')
|
||||
if not token_dlt:
|
||||
return []
|
||||
|
||||
token_dlt = session.get('token_dlt')
|
||||
api_dlt = app.config.get('API_DLT')
|
||||
if not token_dlt or not api_dlt:
|
||||
if not api_dlt:
|
||||
return []
|
||||
|
||||
api = API(api_dlt, token_dlt, "ethereum")
|
||||
|
|
Reference in New Issue