mirror of
https://github.com/GSA/notifications-api.git
synced 2025-12-18 16:12:32 -05:00
Add view_activity permission so that users can have the default permission to see activity.
Add view_activity to default permissions when adding a new user. Add view_activity as a permission group, used when inviting a user.
This commit is contained in:
@@ -12,7 +12,8 @@ from app.models import (
|
||||
SEND_EMAILS,
|
||||
SEND_LETTERS,
|
||||
MANAGE_API_KEYS,
|
||||
ACCESS_DEVELOPER_DOCS)
|
||||
ACCESS_DEVELOPER_DOCS,
|
||||
VIEW_ACTIVITY)
|
||||
|
||||
|
||||
# Default permissions for a service
|
||||
@@ -24,7 +25,8 @@ default_service_permissions = [
|
||||
SEND_EMAILS,
|
||||
SEND_LETTERS,
|
||||
MANAGE_API_KEYS,
|
||||
ACCESS_DEVELOPER_DOCS]
|
||||
ACCESS_DEVELOPER_DOCS,
|
||||
VIEW_ACTIVITY]
|
||||
|
||||
|
||||
class PermissionDAO(DAOClass):
|
||||
|
||||
@@ -308,6 +308,7 @@ SEND_LETTERS = 'send_letters'
|
||||
MANAGE_API_KEYS = 'manage_api_keys'
|
||||
ACCESS_DEVELOPER_DOCS = 'access_developer_docs'
|
||||
PLATFORM_ADMIN = 'platform_admin'
|
||||
VIEW_ACTIVITY = 'view_activity'
|
||||
|
||||
# List of permissions
|
||||
PERMISSION_LIST = [
|
||||
@@ -319,7 +320,8 @@ PERMISSION_LIST = [
|
||||
SEND_LETTERS,
|
||||
MANAGE_API_KEYS,
|
||||
ACCESS_DEVELOPER_DOCS,
|
||||
PLATFORM_ADMIN]
|
||||
PLATFORM_ADMIN,
|
||||
VIEW_ACTIVITY]
|
||||
|
||||
|
||||
class Permission(db.Model):
|
||||
|
||||
@@ -6,7 +6,8 @@ from app.models import (
|
||||
SEND_EMAILS,
|
||||
SEND_LETTERS,
|
||||
MANAGE_API_KEYS,
|
||||
ACCESS_DEVELOPER_DOCS
|
||||
ACCESS_DEVELOPER_DOCS,
|
||||
VIEW_ACTIVITY
|
||||
)
|
||||
|
||||
from app.schemas import permission_schema
|
||||
@@ -14,7 +15,8 @@ from app.schemas import permission_schema
|
||||
|
||||
permissions_groups = {'send_messages': [SEND_TEXTS, SEND_EMAILS, SEND_LETTERS],
|
||||
'manage_service': [MANAGE_USERS, MANAGE_SETTINGS, MANAGE_TEMPLATES],
|
||||
'manage_api_keys': [MANAGE_API_KEYS, ACCESS_DEVELOPER_DOCS]}
|
||||
'manage_api_keys': [MANAGE_API_KEYS, ACCESS_DEVELOPER_DOCS],
|
||||
VIEW_ACTIVITY: [VIEW_ACTIVITY]}
|
||||
|
||||
|
||||
def get_permissions_by_group(permission_groups):
|
||||
|
||||
@@ -178,7 +178,6 @@ def remove_user_from_service(service_id, user_id):
|
||||
|
||||
def _process_permissions(user, service, permission_groups):
|
||||
from app.permissions_utils import get_permissions_by_group
|
||||
from app.dao.permissions_dao import permission_dao
|
||||
permissions = get_permissions_by_group(permission_groups)
|
||||
for permission in permissions:
|
||||
permission.user = user
|
||||
|
||||
37
migrations/versions/0043_view_activity.py
Normal file
37
migrations/versions/0043_view_activity.py
Normal file
@@ -0,0 +1,37 @@
|
||||
"""empty message
|
||||
|
||||
Revision ID: 0043_add_view_activity
|
||||
Revises: 0042_default_stats_to_zero
|
||||
Create Date: 2016-03-29 13:46:36.219549
|
||||
|
||||
"""
|
||||
|
||||
# revision identifiers, used by Alembic.
|
||||
import uuid
|
||||
|
||||
revision = '0043_add_view_activity'
|
||||
down_revision = '0042_default_stats_to_zero'
|
||||
|
||||
from alembic import op
|
||||
|
||||
|
||||
def upgrade():
|
||||
### commands auto generated by Alembic - please adjust! ###
|
||||
conn = op.get_bind()
|
||||
conn.execute('COMMIT')
|
||||
conn.execute("alter type permission_types add value IF NOT EXISTS 'view_activity'")
|
||||
user_services = conn.execute("SELECT * FROM user_to_service").fetchall()
|
||||
for user_service in user_services:
|
||||
conn.execute(
|
||||
"insert into permissions (id, service_id, user_id, created_at, permission) "
|
||||
"values('{0}', '{1}', {2}, now(), 'view_activity')".format(
|
||||
uuid.uuid4(), user_service.service_id, user_service.user_id))
|
||||
### end Alembic commands ###
|
||||
|
||||
|
||||
def downgrade():
|
||||
### commands auto generated by Alembic - please adjust! ###
|
||||
conn = op.get_bind()
|
||||
conn.execute("delete from permissions where permission = 'view_activity'")
|
||||
conn.execute("delete from pg_enum where enumlabel = 'view_activity'")
|
||||
### end Alembic commands ###
|
||||
Reference in New Issue
Block a user