mirror of
https://github.com/GSA/notifications-api.git
synced 2026-02-04 10:21:14 -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_EMAILS,
|
||||||
SEND_LETTERS,
|
SEND_LETTERS,
|
||||||
MANAGE_API_KEYS,
|
MANAGE_API_KEYS,
|
||||||
ACCESS_DEVELOPER_DOCS)
|
ACCESS_DEVELOPER_DOCS,
|
||||||
|
VIEW_ACTIVITY)
|
||||||
|
|
||||||
|
|
||||||
# Default permissions for a service
|
# Default permissions for a service
|
||||||
@@ -24,7 +25,8 @@ default_service_permissions = [
|
|||||||
SEND_EMAILS,
|
SEND_EMAILS,
|
||||||
SEND_LETTERS,
|
SEND_LETTERS,
|
||||||
MANAGE_API_KEYS,
|
MANAGE_API_KEYS,
|
||||||
ACCESS_DEVELOPER_DOCS]
|
ACCESS_DEVELOPER_DOCS,
|
||||||
|
VIEW_ACTIVITY]
|
||||||
|
|
||||||
|
|
||||||
class PermissionDAO(DAOClass):
|
class PermissionDAO(DAOClass):
|
||||||
|
|||||||
@@ -308,6 +308,7 @@ SEND_LETTERS = 'send_letters'
|
|||||||
MANAGE_API_KEYS = 'manage_api_keys'
|
MANAGE_API_KEYS = 'manage_api_keys'
|
||||||
ACCESS_DEVELOPER_DOCS = 'access_developer_docs'
|
ACCESS_DEVELOPER_DOCS = 'access_developer_docs'
|
||||||
PLATFORM_ADMIN = 'platform_admin'
|
PLATFORM_ADMIN = 'platform_admin'
|
||||||
|
VIEW_ACTIVITY = 'view_activity'
|
||||||
|
|
||||||
# List of permissions
|
# List of permissions
|
||||||
PERMISSION_LIST = [
|
PERMISSION_LIST = [
|
||||||
@@ -319,7 +320,8 @@ PERMISSION_LIST = [
|
|||||||
SEND_LETTERS,
|
SEND_LETTERS,
|
||||||
MANAGE_API_KEYS,
|
MANAGE_API_KEYS,
|
||||||
ACCESS_DEVELOPER_DOCS,
|
ACCESS_DEVELOPER_DOCS,
|
||||||
PLATFORM_ADMIN]
|
PLATFORM_ADMIN,
|
||||||
|
VIEW_ACTIVITY]
|
||||||
|
|
||||||
|
|
||||||
class Permission(db.Model):
|
class Permission(db.Model):
|
||||||
|
|||||||
@@ -6,7 +6,8 @@ from app.models import (
|
|||||||
SEND_EMAILS,
|
SEND_EMAILS,
|
||||||
SEND_LETTERS,
|
SEND_LETTERS,
|
||||||
MANAGE_API_KEYS,
|
MANAGE_API_KEYS,
|
||||||
ACCESS_DEVELOPER_DOCS
|
ACCESS_DEVELOPER_DOCS,
|
||||||
|
VIEW_ACTIVITY
|
||||||
)
|
)
|
||||||
|
|
||||||
from app.schemas import permission_schema
|
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],
|
permissions_groups = {'send_messages': [SEND_TEXTS, SEND_EMAILS, SEND_LETTERS],
|
||||||
'manage_service': [MANAGE_USERS, MANAGE_SETTINGS, MANAGE_TEMPLATES],
|
'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):
|
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):
|
def _process_permissions(user, service, permission_groups):
|
||||||
from app.permissions_utils import get_permissions_by_group
|
from app.permissions_utils import get_permissions_by_group
|
||||||
from app.dao.permissions_dao import permission_dao
|
|
||||||
permissions = get_permissions_by_group(permission_groups)
|
permissions = get_permissions_by_group(permission_groups)
|
||||||
for permission in permissions:
|
for permission in permissions:
|
||||||
permission.user = user
|
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