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,
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 = '******'
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)
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)
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,
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"
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)