diff options
author | tilly-Q <nattilypigeonfowl@gmail.com> | 2013-09-08 18:26:37 -0400 |
---|---|---|
committer | tilly-Q <nattilypigeonfowl@gmail.com> | 2013-09-08 18:26:37 -0400 |
commit | 25625107b6c7805b474ad7da976171991b259e58 (patch) | |
tree | d1c408eb9e3eb77593a13193d8fcb3fc5b6c4380 /mediagoblin/db | |
parent | 8e91df87349b91611a4dfcf3f2640cb540307144 (diff) | |
download | mediagoblin-25625107b6c7805b474ad7da976171991b259e58.tar.lz mediagoblin-25625107b6c7805b474ad7da976171991b259e58.tar.xz mediagoblin-25625107b6c7805b474ad7da976171991b259e58.zip |
This was a quick update, I mostly worked on the transition from using the old
User table columns (is_admin, status, email_verified) and making sure that
their functionality is instead completely handled by privileges. I also worked
on the meta pages which I hope to finish soon. I set up migrations to ensure
the default privileges are given to users that should have them. Lastly, I made
it so that banned users can log out.
===============================================================================
Made Sure the Vestigial Columns of the User Table were not being Used
===============================================================================
--\ mediagoblin/auth/views.py
--\ mediagoblin/db/models.py
--\ mediagoblin/templates/mediagoblin/base.html
--\ mediagoblin/templates/mediagoblin/moderation/user.html
--\ mediagoblin/templates/mediagoblin/user_pages/collection_lis$
--\ mediagoblin/templates/mediagoblin/user_pages/user.html
--\ mediagoblin/tests/test_auth.py
--\ mediagoblin/tests/test_persona.py
--\ mediagoblin/user_pages/views.py
===============================================================================
Wrote the Migrations to Set up the Default Privileges
===============================================================================
--\ mediagoblin/db/migrations.py
--\ mediagoblin/gmg_commands/users.py
===============================================================================
Work on the Meta Pages
===============================================================================
--\ mediagoblin/meta/routing.py
--\ mediagoblin/meta/views.py
--\ mediagoblin/static/css/base.css
--\ mediagoblin/templates/mediagoblin/meta/terms_of_service.html
===============================================================================
Small Changes
===============================================================================
--\ mediagoblin/templates/mediagoblin/base.html
--| Benevolently made it so that banned users can log out
===============================================================================
X X X X X X X X X X X X X X X X X X X X
===============================================================================
Diffstat (limited to 'mediagoblin/db')
-rw-r--r-- | mediagoblin/db/migrations.py | 37 | ||||
-rw-r--r-- | mediagoblin/db/models.py | 4 |
2 files changed, 38 insertions, 3 deletions
diff --git a/mediagoblin/db/migrations.py b/mediagoblin/db/migrations.py index 6659feb3..1c0a9291 100644 --- a/mediagoblin/db/migrations.py +++ b/mediagoblin/db/migrations.py @@ -29,7 +29,8 @@ from migrate.changeset.constraint import UniqueConstraint from mediagoblin.db.extratypes import JSONEncoded from mediagoblin.db.migration_tools import RegisterMigration, inspect_table from mediagoblin.db.models import (MediaEntry, Collection, User, - MediaComment, Privilege, ReportBase) + MediaComment, Privilege, ReportBase, + FOUNDATIONS) MIGRATIONS = {} @@ -531,6 +532,40 @@ def create_moderation_tables(db): UserBan_v0.__table__.create(db.bind) Privilege_v0.__table__.create(db.bind) PrivilegeUserAssociation_v0.__table__.create(db.bind) + db.commit() + for parameters in FOUNDATIONS[Privilege]: + p = Privilege(**parameters) + p.save() + +@RegisterMigration(16, MIGRATIONS) +def update_user_privilege_columns(db): + metadata = MetaData(bind=db.bind) + default_privileges = Privilege.query.filter( + Privilege.privilege_name !=u'admin').filter( + Privilege.privilege_name !=u'moderator').filter( + Privilege.privilege_name !=u'active').all() + admin_privilege = Privilege.query.filter( + Privilege.privilege_name ==u'admin').first() + active_privilege = Privilege.query.filter( + Privilege.privilege_name ==u'active').first() + for inactive_user in User.query.filter( + User.status!=u'active').filter( + User.is_admin==False).all(): + + inactive_user.all_privileges = default_privileges + inactive_user.save() + for user in User.query.filter( + User.status==u'active').filter( + User.is_admin==False).all(): + + user.all_privileges = default_privileges + [active_privilege] + user.save() + for admin_user in User.query.filter( + User.is_admin==True).all(): + + admin_user.all_privileges = default_privileges + [ + admin_privilege, active_privilege] + admin_user.save() diff --git a/mediagoblin/db/models.py b/mediagoblin/db/models.py index f25dc32c..5b77a85d 100644 --- a/mediagoblin/db/models.py +++ b/mediagoblin/db/models.py @@ -81,8 +81,8 @@ class User(Base, UserMixin): return '<{0} #{1} {2} {3} "{4}">'.format( self.__class__.__name__, self.id, - 'verified' if self.email_verified else 'non-verified', - 'admin' if self.is_admin else 'user', + 'verified' if self.has_privilege(u'active') else 'non-verified', + 'admin' if self.has_privilege(u'admin') else 'user', self.username) def delete(self, **kwargs): |