Esempio n. 1
0
File: list.py Progetto: vied12/aleph
import logging
from datetime import datetime

from sqlalchemy import or_

from aleph.core import db, url_for
from aleph.model.user import User
from aleph.model.forms import ListForm

log = logging.getLogger(__name__)

list_user_table = db.Table(
    'list_user',
    db.metadata,
    db.Column('list_id', db.Integer, db.ForeignKey('list.id')),  # noqa
    db.Column('user_id', db.Integer, db.ForeignKey('user.id'))  # noqa
)


class List(db.Model):
    id = db.Column(db.Integer(), primary_key=True)
    label = db.Column(db.Unicode)
    public = db.Column(db.Boolean, default=False)

    creator_id = db.Column(db.Integer(),
                           db.ForeignKey('user.id'),
                           nullable=True)
    creator = db.relationship(User)

    created_at = db.Column(db.DateTime, default=datetime.utcnow)
    updated_at = db.Column(db.DateTime,
Esempio n. 2
0
import logging
from datetime import datetime
from normality import stringify
from sqlalchemy import or_, not_, func
from itsdangerous import URLSafeTimedSerializer
from werkzeug.security import generate_password_hash, check_password_hash

from aleph.core import db, settings
from aleph.model.common import SoftDeleteModel, IdModel, make_textid
from aleph.util import anonymize_email

log = logging.getLogger(__name__)

membership = db.Table(
    'role_membership',
    db.Column('group_id', db.Integer, db.ForeignKey('role.id')),  # noqa
    db.Column('member_id', db.Integer, db.ForeignKey('role.id'))  # noqa
)


class Role(db.Model, IdModel, SoftDeleteModel):
    """A user, group or other access control subject."""
    __tablename__ = 'role'

    USER = '******'
    GROUP = 'group'
    SYSTEM = 'system'
    TYPES = [USER, GROUP, SYSTEM]

    SYSTEM_GUEST = 'guest'
    SYSTEM_USER = '******'
Esempio n. 3
0
from sqlalchemy.dialects.postgresql import JSONB
from sqlalchemy.orm.attributes import flag_modified

from aleph.core import db
from aleph.metadata import Metadata
from aleph.model.collection import Collection
from aleph.model.reference import Reference
from aleph.model.validation import validate
from aleph.model.common import DatedModel

log = logging.getLogger(__name__)

collection_document_table = db.Table(
    'collection_document',
    db.Column('document_id', db.BigInteger,
              db.ForeignKey('document.id')),  # noqa
    db.Column('collection_id', db.Integer,
              db.ForeignKey('collection.id'))  # noqa
)


class Document(db.Model, DatedModel):
    _schema = 'document.json#'

    TYPE_TEXT = 'text'
    TYPE_TABULAR = 'tabular'
    TYPE_OTHER = 'other'

    id = db.Column(db.BigInteger, primary_key=True)
    content_hash = db.Column(db.Unicode(65), nullable=False, index=True)
    foreign_id = db.Column(db.Unicode, unique=False, nullable=True)
Esempio n. 4
0
from aleph.core import db
from aleph.text import normalize_strong
from aleph.model.collection import Collection
from aleph.model.reference import Reference
from aleph.model.schema_model import SchemaModel
from aleph.model.common import SoftDeleteModel, UuidModel
from aleph.model.common import make_textid, make_fingerprint
from aleph.model.entity_details import EntityOtherName, EntityIdentifier  # noqa
from aleph.model.entity_details import EntityAddress, EntityContactDetail  # noqa

log = logging.getLogger(__name__)

collection_entity_table = db.Table(
    'collection_entity',
    db.Column('entity_id', db.String(32), db.ForeignKey('entity.id')),  # noqa
    db.Column('collection_id', db.Integer,
              db.ForeignKey('collection.id'))  # noqa
)


class Entity(db.Model, UuidModel, SoftDeleteModel, SchemaModel):
    _schema = '/entity/entity.json#'
    _schema_recurse = True

    STATE_ACTIVE = 'active'
    STATE_PENDING = 'pending'
    STATE_DELETED = 'deleted'

    name = db.Column(db.Unicode)
    type = db.Column('type', db.String(255), index=True)
    state = db.Column(db.String(128), nullable=True, default=STATE_ACTIVE)
Esempio n. 5
0
File: user.py Progetto: vied12/aleph
from aleph.model.util import make_token
from aleph.model.forms import UserForm
from flask.ext.security import Security, SQLAlchemyUserDatastore, \
    UserMixin, RoleMixin, login_required
from flask.ext.security.utils import encrypt_password, get_hmac

log = logging.getLogger(__name__)


@login_manager.user_loader
def load_user(id):
    return User.query.get(int(id))


roles_users = db.Table(
    'roles_users', db.Column('user_id', db.Integer(),
                             db.ForeignKey('user.id')),
    db.Column('role_id', db.Integer(), db.ForeignKey('role.id')))


class Role(db.Model, RoleMixin):
    id = db.Column(db.Integer(), primary_key=True)
    name = db.Column(db.String(80), unique=True)
    description = db.Column(db.String(255))


class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    email = db.Column(
        db.Unicode,
        #following attributes are for flask-user
        nullable=False,
Esempio n. 6
0
File: role.py Progetto: sunu/aleph
import logging
from datetime import datetime
from normality import stringify
from sqlalchemy import or_, not_, func
from itsdangerous import URLSafeTimedSerializer
from werkzeug.security import generate_password_hash, check_password_hash

from aleph.core import db, settings
from aleph.model.common import SoftDeleteModel, IdModel, make_token, query_like
from aleph.util import anonymize_email

log = logging.getLogger(__name__)

membership = db.Table(
    "role_membership",
    db.Column("group_id", db.Integer, db.ForeignKey("role.id")),  # noqa
    db.Column("member_id", db.Integer, db.ForeignKey("role.id")),  # noqa
)


class Role(db.Model, IdModel, SoftDeleteModel):
    """A user, group or other access control subject."""

    __tablename__ = "role"

    USER = "******"
    GROUP = "group"
    SYSTEM = "system"
    TYPES = [USER, GROUP, SYSTEM]

    SYSTEM_GUEST = "guest"
Esempio n. 7
0
import logging
from datetime import datetime

from sqlalchemy import or_
from sqlalchemy_utils.types.json import JSONType

from aleph.core import db, archive, url_for
from aleph.model.user import User
from aleph.model.forms import SourceEditForm, SourceCreateForm

log = logging.getLogger(__name__)

source_user_table = db.Table(
    'source_user',
    db.metadata,
    db.Column('source_slug', db.Unicode, db.ForeignKey('source.slug')),  # noqa
    db.Column('user_id', db.Integer, db.ForeignKey('user.id'))  # noqa
)


class Source(db.Model):
    slug = db.Column(db.Unicode, nullable=False, primary_key=True)
    label = db.Column(db.Unicode, nullable=True)
    public = db.Column(db.Boolean, default=True)
    crawler = db.Column(db.Unicode)
    config = db.Column(JSONType, nullable=True, default={})

    created_at = db.Column(db.DateTime, default=datetime.utcnow)
    updated_at = db.Column(db.DateTime,
                           default=datetime.utcnow,
                           onupdate=datetime.utcnow)