mirror of
https://github.com/GSA/notifications-api.git
synced 2026-09-10 01:56:03 -04:00
Merge pull request #3274 from alphagov/new-permissions
Add new broadcast related permissions
This commit is contained in:
@@ -1870,6 +1870,10 @@ SEND_LETTERS = 'send_letters'
|
|||||||
MANAGE_API_KEYS = 'manage_api_keys'
|
MANAGE_API_KEYS = 'manage_api_keys'
|
||||||
PLATFORM_ADMIN = 'platform_admin'
|
PLATFORM_ADMIN = 'platform_admin'
|
||||||
VIEW_ACTIVITY = 'view_activity'
|
VIEW_ACTIVITY = 'view_activity'
|
||||||
|
CREATE_BROADCASTS = 'create_broadcasts'
|
||||||
|
APPROVE_BROADCASTS = 'approve_broadcasts'
|
||||||
|
CANCEL_BROADCASTS = 'cancel_broadcasts'
|
||||||
|
REJECT_BROADCASTS = 'reject_broadcasts'
|
||||||
|
|
||||||
# List of permissions
|
# List of permissions
|
||||||
PERMISSION_LIST = [
|
PERMISSION_LIST = [
|
||||||
@@ -1881,7 +1885,12 @@ PERMISSION_LIST = [
|
|||||||
SEND_LETTERS,
|
SEND_LETTERS,
|
||||||
MANAGE_API_KEYS,
|
MANAGE_API_KEYS,
|
||||||
PLATFORM_ADMIN,
|
PLATFORM_ADMIN,
|
||||||
VIEW_ACTIVITY]
|
VIEW_ACTIVITY,
|
||||||
|
CREATE_BROADCASTS,
|
||||||
|
APPROVE_BROADCASTS,
|
||||||
|
CANCEL_BROADCASTS,
|
||||||
|
REJECT_BROADCASTS,
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
class Permission(db.Model):
|
class Permission(db.Model):
|
||||||
|
|||||||
50
migrations/versions/0359_more_permissions.py
Normal file
50
migrations/versions/0359_more_permissions.py
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
"""
|
||||||
|
|
||||||
|
Revision ID: 0359_more_permissions
|
||||||
|
Revises: 0358_operator_channel
|
||||||
|
Create Date: 2021-06-15 17:47:16.871071
|
||||||
|
|
||||||
|
"""
|
||||||
|
from alembic import op
|
||||||
|
import sqlalchemy as sa
|
||||||
|
|
||||||
|
revision = '0359_more_permissions'
|
||||||
|
down_revision = '0358_operator_channel'
|
||||||
|
|
||||||
|
enum_name = 'permission_types'
|
||||||
|
tmp_name = 'tmp_' + enum_name
|
||||||
|
|
||||||
|
old_options = (
|
||||||
|
'manage_users',
|
||||||
|
'manage_templates',
|
||||||
|
'manage_settings',
|
||||||
|
'send_texts',
|
||||||
|
'send_emails',
|
||||||
|
'send_letters',
|
||||||
|
'manage_api_keys',
|
||||||
|
'platform_admin',
|
||||||
|
'view_activity',
|
||||||
|
)
|
||||||
|
old_type = sa.Enum(*old_options, name=enum_name)
|
||||||
|
|
||||||
|
|
||||||
|
def upgrade():
|
||||||
|
# ALTER TYPE must be run outside of a transaction block (see link below for details)
|
||||||
|
# https://alembic.sqlalchemy.org/en/latest/api/runtime.html#alembic.runtime.migration.MigrationContext.autocommit_block
|
||||||
|
with op.get_context().autocommit_block():
|
||||||
|
op.execute("ALTER TYPE permission_types ADD VALUE 'create_broadcasts'")
|
||||||
|
op.execute("ALTER TYPE permission_types ADD VALUE 'approve_broadcasts'")
|
||||||
|
op.execute("ALTER TYPE permission_types ADD VALUE 'cancel_broadcasts'")
|
||||||
|
op.execute("ALTER TYPE permission_types ADD VALUE 'reject_broadcasts'")
|
||||||
|
|
||||||
|
|
||||||
|
def downgrade():
|
||||||
|
op.execute(
|
||||||
|
"DELETE FROM permissions WHERE permission in "
|
||||||
|
"('create_broadcasts', 'approve_broadcasts', 'cancel_broadcasts', 'reject_broadcasts')"
|
||||||
|
)
|
||||||
|
|
||||||
|
op.execute(f'ALTER TYPE {enum_name} RENAME TO {tmp_name}')
|
||||||
|
old_type.create(op.get_bind())
|
||||||
|
op.execute(f'ALTER TABLE permissions ALTER COLUMN permission TYPE {enum_name} USING permission::text::{enum_name}')
|
||||||
|
op.execute(f'DROP TYPE {tmp_name}')
|
||||||
Reference in New Issue
Block a user