Пример #1
0
    def GetSessionList(initiator):
        bdb = connect()
        lookup = AssetsManager.lookup_asset(bdb,"NewAttendanceSession")
        session_list = []
        session_ids = []
        presents = {}
        for entry in lookup:
            if entry['data']['AssetType'] == 'NewAttendanceSession' :
                if entry['data']['SessionInitiator'] == initiator:
                    session_ids.append(entry['data']['SessionID'])
                    presents[entry['data']['SessionID']] = 0
                    session_list.append({
                        "Name" : entry['data']['SessionName'] ,
                        "Date"  : entry['data']['CreationDate'],
                        "Time" : entry['data']['CreationTime'],
                        "Present" : "0"
                        })

        lookup2 = AssetsManager.lookup_asset(bdb,"SessionPresence")
        print(lookup2)
        for entry in lookup2:
            if entry['data']['AssetType'] == 'SessionPresence' :
                id = entry['data']['SessionID']
                if id in session_ids:
                    presents[id] = presents[id] + 1
        index = 0
        for session_id in session_ids:
            session_list[index]['Present'] = presents[session_id]
            index = index + 1

        return session_list[::-1]
Пример #2
0
    def NewMember(did, keys):
        bdb = connect()
        lookup = AssetsManager.lookup_asset(bdb, "NewOrgMember")
        already_regs = False
        for item in lookup:
            block = AssetsManager.get_from_id(bdb, item['id'])
            transactions = AssetsManager.lookup_transactions(bdb, item['id'])
            transaction = transactions[len(transactions) - 1]
            owner_pk = transaction['outputs'][0]['public_keys'][0]
            mdi = transactions[0]['asset']['data']['MemberDigitalID']
            if mdi == did:
                if owner_pk == keys.public_key:
                    already_regs = True
                    break

        if not already_regs:
            am = AssetsManager("CREATE",
                               asset_data={
                                   "asset_type": "NewMember",
                                   "values": {
                                       "MemberDigitalID": did
                                   }
                               },
                               c_keys=keys,
                               bdb=bdb)

            return am.create()

        return False
Пример #3
0
 def TransferMember(asset_id, prevu_key, curru_key):
     bdb = connect()
     am = AssetsManager("TRANSFER",
                        asset_id=asset_id,
                        p_keys=prevu_key,
                        c_keys=curru_key,
                        bdb=bdb)
     return am.transfer()
Пример #4
0
    def GetAssetID(digital_id, owner_keys):
        bdb = connect()
        lookup = AssetsManager.lookup_asset(bdb, digital_id)
        for asset in lookup:
            if asset['data']['AssetType'] == "NewOrgMember":
                transactions = AssetsManager.lookup_transactions(
                    bdb, asset['id'])
                transaction = transactions[len(transactions) - 1]
                if transaction['outputs'][0]['public_keys'][
                        0] == owner_keys.public_key:
                    return asset['id']

        return False
Пример #5
0
    def NewSession(sess_name,sess_ini_did,org_id,keys):
        session_id = hmac.new(os.urandom(32).hex().encode('utf-8'),(sess_ini_did[:20]+org_id[-20:]).encode('utf-8'),hashlib.sha256).hexdigest()
        bdb = connect()
        am = AssetsManager("CREATE", asset_data={
            "asset_type" : "NewAttendanceSession",
            "values" : {
                "SessionName" : sess_name,
                "SessionInitiator" : sess_ini_did,
                "Organization" : org_id,
                "SessionID" : session_id,
                "CreationDate" : datetime.datetime.now().strftime('%d/%m/%y'),
                "CreationTime" : datetime.datetime.now().strftime('%H:%M')
            }
        }, c_keys=keys, bdb=bdb)

        return (am.create(),session_id)
Пример #6
0
    def GetOrgMemberList(org_keys):
        bdb = connect()
        lookup = AssetsManager.lookup_asset(bdb, "NewOrgMember")
        already_regs = False
        member_ids = []
        for item in lookup:
            block = AssetsManager.get_from_id(bdb, item['id'])
            transactions = AssetsManager.lookup_transactions(bdb, item['id'])
            transaction = transactions[len(transactions) - 1]
            owner_pk = transaction['outputs'][0]['public_keys'][0]
            mdi = transactions[0]['asset']['data']['MemberDigitalID']
            if owner_pk == org_keys.public_key:
                state_addr = DigitalIDStateAddress.for_new_user(mdi).address
                data = GetStateData(state_addr)
                member_ids.append((data['Name'], mdi))

        return member_ids
Пример #7
0
    def MarkPresence(sess_id,m_did,keys):
        bdb = connect()
        can_proceed = False
        lookup = AssetsManager.lookup_asset(bdb,"NewAttendanceSession")
        for entry in lookup:
            if entry['data']['AssetType'] == 'NewAttendanceSession' :
                if entry['data']['SessionID'] ==  sess_id:
                    can_proceed = True
                    break
        if can_proceed:
            am = AssetsManager("CREATE",asset_data={
                "asset_type" : "Present",
                "values" : {
                    "MarkedFor" : m_did,
                    "SessionID" : sess_id
                }
            }, c_keys=keys, bdb=bdb)

            dx = am.create()
            print(dx)
            return dx
        else:
            return can_proceed