Permission enums corrected, all tests passing.

This commit is contained in:
Nicholas Staples
2016-03-02 15:34:26 +00:00
parent 3fd3aa5b3e
commit ebec54cb80
5 changed files with 121 additions and 43 deletions

View File

@@ -0,0 +1,77 @@
"""empty message
Revision ID: 0033_correct_permission_enums
Revises: 0032_update_permission_to_enum
Create Date: 2016-03-02 15:00:25.358153
"""
# revision identifiers, used by Alembic.
revision = '0033_correct_permission_enums'
down_revision = '0032_update_permission_to_enum'
import uuid
from datetime import datetime
from alembic import op
import sqlalchemy as sa
def add_default_permissions(conn, permissions):
user_services = conn.execute("SELECT * FROM user_to_service").fetchall()
for entry in user_services:
for p in permissions:
id_ = uuid.uuid4()
created_at = datetime.now().isoformat().replace('T', ' ')
conn.execute((
"INSERT INTO permissions (id, user_id, service_id, permission, created_at)"
" VALUES ('{}', '{}', '{}', '{}', '{}')").format(id_, entry[0], entry[1], p, created_at))
def upgrade():
# Since there are no specific permissions set for services yet
# we can just remove all and re-add all.
### commands auto generated by Nick - please adjust! ###
new_permissions = ['manage_users',
'manage_templates',
'manage_settings',
'send_texts',
'send_emails',
'send_letters',
'manage_api_keys',
'access_developer_docs']
conn = op.get_bind()
conn.execute("DELETE FROM permissions")
op.drop_column('permissions', 'permission')
try:
sa.Enum(name='permission_types').drop(conn, checkfirst=False)
except:
pass
permission_types = sa.Enum(*new_permissions, name='permission_types')
permission_types.create(op.get_bind())
op.add_column('permissions', sa.Column('permission', permission_types, nullable=False))
add_default_permissions(conn, new_permissions)
op.alter_column('permissions', 'permission', nullable=False)
### end Alembic commands ###
def downgrade():
### commands auto generated by Nick - please adjust! ###
old_permissions = ['manage_service',
'send_messages',
'manage_api_keys',
'manage_templates',
'manage_team',
'view_activity']
conn = op.get_bind()
conn.execute("DELETE FROM permissions")
op.drop_column('permissions', 'permission')
try:
sa.Enum(name='permission_types').drop(conn, checkfirst=False)
except:
pass
permission_types = sa.Enum(*old_permissions, name='permission_types')
permission_types.create(op.get_bind())
op.add_column('permissions', sa.Column('permission', permission_types, nullable=False))
add_default_permissions(conn, old_permissions)
op.alter_column('permissions', 'permission', nullable=False)
### end Alembic commands ###