Merge pull request #748 from dod-ccpo/display-app-users
Display app users
This commit is contained in:
@@ -9,6 +9,7 @@ from flask import (
|
||||
|
||||
from . import portfolios_bp
|
||||
from atst.domain.environment_roles import EnvironmentRoles
|
||||
from atst.domain.environments import Environments
|
||||
from atst.domain.exceptions import UnauthorizedError
|
||||
from atst.domain.applications import Applications
|
||||
from atst.domain.portfolios import Portfolios
|
||||
@@ -16,6 +17,8 @@ from atst.forms.application import NewApplicationForm, ApplicationForm
|
||||
from atst.domain.authz.decorator import user_can_access_decorator as user_can
|
||||
from atst.models.permissions import Permissions
|
||||
from atst.utils.flash import formatted_flash as flash
|
||||
from atst.domain.permission_sets import PermissionSets
|
||||
from atst.utils.localization import translate
|
||||
|
||||
|
||||
@portfolios_bp.route("/portfolios/<portfolio_id>/applications")
|
||||
@@ -139,3 +142,44 @@ def delete_application(portfolio_id, application_id):
|
||||
return redirect(
|
||||
url_for("portfolios.portfolio_applications", portfolio_id=portfolio_id)
|
||||
)
|
||||
|
||||
|
||||
def permission_str(member, edit_perm_set):
|
||||
if member.has_permission_set(edit_perm_set):
|
||||
return translate("portfolios.members.permissions.edit_access")
|
||||
else:
|
||||
return translate("portfolios.members.permissions.view_only")
|
||||
|
||||
|
||||
@portfolios_bp.route("/portfolios/<portfolio_id>/applications/<application_id>/team")
|
||||
@user_can(Permissions.VIEW_APPLICATION, message="view portfolio applications")
|
||||
def application_team(portfolio_id, application_id):
|
||||
application = Applications.get(
|
||||
resource_id=application_id, portfolio_id=portfolio_id
|
||||
)
|
||||
|
||||
environment_users = {}
|
||||
for member in application.members:
|
||||
user_id = member.user.id
|
||||
environment_users[user_id] = {
|
||||
"permissions": {
|
||||
"delete_access": permission_str(
|
||||
member, PermissionSets.DELETE_APPLICATION_ENVIRONMENTS
|
||||
),
|
||||
"environment_management": permission_str(
|
||||
member, PermissionSets.EDIT_APPLICATION_ENVIRONMENTS
|
||||
),
|
||||
"team_management": permission_str(
|
||||
member, PermissionSets.EDIT_APPLICATION_TEAM
|
||||
),
|
||||
},
|
||||
"environments": Environments.for_user(
|
||||
user=member.user, application=application
|
||||
),
|
||||
}
|
||||
|
||||
return render_template(
|
||||
"portfolios/applications/team.html",
|
||||
application=application,
|
||||
environment_users=environment_users,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user