Example #1
0
class IosHexLocation(db.Model):
    __tablename__ = 'ios_hex_locations'

    id = db.Column(db.String(), primary_key=True)
    user_object_id = db.Column(
        db.String(), db.ForeignKey('user_objects.id', ondelete="CASCADE"))
    hex_object_id = db.Column(
        db.String(), db.ForeignKey('hex_objects.id', ondelete="CASCADE"))
    location = db.Column(db.String(), index=True)

    hex_object = db.relationship('HexObject',
                                 foreign_keys="IosHexLocation.hex_object_id")
    user_object = db.relationship('UserObject',
                                  foreign_keys="IosHexLocation.user_object_id")

    def __init__(self, user_object_id, hex_object_id, location):
        self.id = uuid.uuid4().urn[
            9:]  # make a uuid, convert to urn/string, uuid starts after 9th char
        self.user_object_id = user_object_id
        self.hex_object_id = hex_object_id
        self.location = location

    def __repr__(self):
        return ('{{hex_object_id: "{}",' + 'location: "{}"}}').format(
            self.hex_object_id, self.location)
Example #2
0
class HexObject(db.Model):
    __tablename__ = 'hex_objects'

    id = db.Column(db.String(), primary_key=True)
    name = db.Column(db.String(), index=True)
    image_path = db.Column(db.String(), index=True)

    is_private = db.Column(db.Boolean)

    owner_id = db.Column(db.String(),
                         db.ForeignKey('user_objects.id'),
                         index=True)
    user_object_id = db.Column(db.String(),
                               db.ForeignKey('user_objects.id'),
                               index=True)

    owner = db.relationship('UserObject', foreign_keys="HexObject.owner_id")
    user_object = db.relationship('UserObject',
                                  foreign_keys="HexObject.user_object_id")

    def __init__(self, name, owner_id, user_id, image_path, is_private):
        self.id = uuid.uuid4().urn[
            9:]  # make a uuid, convert to urn/string, uuid starts after 9th char
        self.name = name
        self.owner_id = owner_id
        self.user_object_id = user_id
        self.is_private = is_private
        self.image_path = image_path

    def __repr__(self):
        return ('{{id: {}, ' + 'name: "{}", ' + 'owner_id: "{}", ' +
                'user_id: "{}", ' + 'image_path: "{}"}}').format(
                    self.id, self.name, self.owner_id, self.user_object_id,
                    self.image_path)
Example #3
0
class UserObject(db.Model):
    __tablename__ = 'user_objects'

    id = db.Column(db.String(), primary_key=True)
    username = db.Column(db.String(32), index=True)
    email = db.Column(db.String(128), index=True)
    password_hash = db.Column(db.String(128))
    is_active = True
    is_authenticated = True
    is_anonymous = False

    def __init__(self, username):
        self.id = uuid.uuid4().urn[
            9:]  # make a uuid, convert to urn/string, uuid starts after 9th char
        self.username = username

    def __repr__(self):
        return ('{{id: "{}"}}').format(self.id, self.username)

    def hash_password(self, password):
        self.password_hash = pwd_context.encrypt(password)

    def verify_password(self, password):
        return pwd_context.verify(password, self.password_hash)

    def generate_auth_token(self, expiration=3600):
        s = Serializer(app.config['SECRET_KEY'], expires_in=expiration)
        return s.dumps({'id': self.id})

    @staticmethod
    def verify_auth_token(token):
        s = Serializer(app.config['SECRET_KEY'])
        try:
            data = s.loads(token)
        except (BadSignature, SignatureExpired) as e:
            return None
        user = UserObject.query.get(data['id'])
        return user

    def get_id(self):
        return self.id
Example #4
0
class PasswordReset(db.Model):
    __tablename__ = 'password_resets'

    id = db.Column(db.String(), primary_key=True)
    code = db.Column(db.String(), index=True)
    expiry_date = db.Column(db.String())
    user_object_id = db.Column(
        db.String(), db.ForeignKey('user_objects.id', ondelete="CASCADE"))
    user_object = db.relationship('UserObject',
                                  foreign_keys="PasswordReset.user_object_id")

    def __init__(self, code, user_object_id, expiry_date):
        self.id = uuid.uuid4().urn[9:]
        self.code = code
        self.user_object_id = user_object_id
        self.expiry_date = expiry_date

    def __repr__(self):
        return ('{{id: "{}"' + 'code: "{}",' + 'user_object_id: "{}",' +
                'expiry_date: "{}"}}').format(self.id, self.code,
                                              self.user_object_id,
                                              self.expiry_date)
Example #5
0
class SendObject(db.Model):
    __tablename__ = 'send_objects'

    id = db.Column(db.String(), primary_key=True)
    sender_id = db.Column(db.String(), index=True)
    recipient_id = db.Column(db.String(), index=True)
    hex_object_id = db.Column(db.String(), db.ForeignKey('hex_objects.id', ondelete="CASCADE"))
    hex_object = db.relationship('HexObject', foreign_keys="SendObject.hex_object_id")

    def __init__(self, sender_id, recipient_id, hex_object_id):
        self.id = uuid.uuid4().urn[9:]
        self.sender_id = sender_id
        self.recipient_id = recipient_id
        self.hex_object_id = hex_object_id

    def __repr__(self):
        return ('{{sender_id: "{}",'
            + 'recipient_id: "{}",'
            + 'hex_object_id: "{}"}}').format(
            self.sender_id,
            self.recipient_id,
            self.hex_object_id
            )
Example #6
0
class LinkObject(db.Model):
    __tablename__ = 'link_objects'

    id = db.Column(db.String(), primary_key=True)
    url = db.Column(db.String(), index=True)
    description = db.Column(db.String(), index=True)
    web_page_title = db.Column(db.String(), index=True)
    hex_object_id = db.Column(
        db.String(), db.ForeignKey('hex_objects.id', ondelete="CASCADE"))
    hex_object = db.relationship('HexObject',
                                 foreign_keys="LinkObject.hex_object_id")

    def __init__(self, url, description, hex_object_id):
        self.id = uuid.uuid4().urn[
            9:]  # make a uuid, convert to urn/string, uuid starts after 9th char
        self.url = url
        self.description = description
        self.hex_object_id = hex_object_id

    def __repr__(self):
        return ('{{id: "{}",' + 'url: "{}",' + 'description: "{}",' +
                'hex_object_id: "{}"}}').format(self.id, self.url,
                                                self.description,
                                                self.hex_object_id)