aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/db
diff options
context:
space:
mode:
authorRodney Ewing <ewing.rj@gmail.com>2013-06-12 12:02:11 -0700
committerRodney Ewing <ewing.rj@gmail.com>2013-08-26 06:33:28 -0700
commitbdd2242155d3192615740661ce52f6fb960d1a05 (patch)
tree54599b61d8f75e43552932b07792eefd41f21e2a /mediagoblin/db
parent0cdebda7fc533384bd725412365325edcbeb038c (diff)
downloadmediagoblin-bdd2242155d3192615740661ce52f6fb960d1a05.tar.lz
mediagoblin-bdd2242155d3192615740661ce52f6fb960d1a05.tar.xz
mediagoblin-bdd2242155d3192615740661ce52f6fb960d1a05.zip
added user upload limits
Diffstat (limited to 'mediagoblin/db')
-rw-r--r--mediagoblin/db/migrations.py24
-rw-r--r--mediagoblin/db/models.py3
2 files changed, 25 insertions, 2 deletions
diff --git a/mediagoblin/db/migrations.py b/mediagoblin/db/migrations.py
index 374ab4c8..b3dca72c 100644
--- a/mediagoblin/db/migrations.py
+++ b/mediagoblin/db/migrations.py
@@ -425,7 +425,7 @@ class RequestToken_v0(declarative_base()):
callback = Column(Unicode, nullable=False, default=u"oob")
created = Column(DateTime, nullable=False, default=datetime.datetime.now)
updated = Column(DateTime, nullable=False, default=datetime.datetime.now)
-
+
class AccessToken_v0(declarative_base()):
"""
Model for representing the access tokens
@@ -438,7 +438,7 @@ class AccessToken_v0(declarative_base()):
request_token = Column(Unicode, ForeignKey(RequestToken_v0.token))
created = Column(DateTime, nullable=False, default=datetime.datetime.now)
updated = Column(DateTime, nullable=False, default=datetime.datetime.now)
-
+
class NonceTimestamp_v0(declarative_base()):
"""
@@ -460,3 +460,23 @@ def create_oauth1_tables(db):
NonceTimestamp_v0.__table__.create(db.bind)
db.commit()
+
+
+@RegisterMigration(15, MIGRATIONS)
+def upload_limits(db):
+ """Add user upload limit columns"""
+ metadata = MetaData(bind=db.bind)
+
+ user_table = inspect_table(metadata, 'core__users')
+ media_entry_table = inspect_table(metadata, 'core__media_entries')
+
+ col = Column('uploaded', Integer, default=0)
+ col.create(user_table)
+
+ col = Column('upload_limit', Integer)
+ col.create(user_table)
+
+ col = Column('file_size', Integer, default=0)
+ col.create(media_entry_table)
+
+ db.commit()
diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py
index 9cb39ff4..697ee326 100644
--- a/mediagoblin/db/models.py
+++ b/mediagoblin/db/models.py
@@ -73,6 +73,8 @@ class User(Base, UserMixin):
is_admin = Column(Boolean, default=False, nullable=False)
url = Column(Unicode)
bio = Column(UnicodeText) # ??
+ uploaded = Column(Integer, default=0)
+ upload_limit = Column(Integer)
## TODO
# plugin data would be in a separate model
@@ -189,6 +191,7 @@ class MediaEntry(Base, MediaEntryMixin):
# or use sqlalchemy.types.Enum?
license = Column(Unicode)
collected = Column(Integer, default=0)
+ file_size = Column(Integer, default=0)
fail_error = Column(Unicode)
fail_metadata = Column(JSONEncoded)