Route for adding new application member

- domain method for creating a new application member
- ApplicationInvitations domain class
- nested form for adding a new user that holds user data, application
  permission sets, and environment roles
- Invitation service can infer invitation type based on role it's given
- new invitation email templates
This commit is contained in:
dandds
2019-04-23 11:24:04 -04:00
parent 054f6b80b9
commit ade77e6b91
17 changed files with 284 additions and 25 deletions

View File

@@ -0,0 +1,41 @@
from wtforms.fields import FormField, FieldList, HiddenField, BooleanField
from .forms import BaseForm
from .member import NewForm as BaseNewMemberForm
from .data import ENV_ROLES
from atst.forms.fields import SelectField
from atst.domain.permission_sets import PermissionSets
class EnvironmentForm(BaseForm):
environment_id = HiddenField()
environment_name = HiddenField()
role = SelectField(environment_name, choices=ENV_ROLES, default=None)
class PermissionsForm(BaseForm):
perms_env_mgmt = BooleanField(None, default=False)
perms_team_mgmt = BooleanField(None, default=False)
perms_del_env = BooleanField(None, default=False)
@property
def data(self):
_data = super().data
perm_sets = []
if _data["perms_env_mgmt"]:
perm_sets.append(PermissionSets.EDIT_APPLICATION_ENVIRONMENTS)
if _data["perms_team_mgmt"]:
perm_sets.append(PermissionSets.EDIT_APPLICATION_TEAM)
if _data["perms_del_env"]:
perm_sets.append(PermissionSets.DELETE_APPLICATION_ENVIRONMENTS)
return perm_sets
class NewForm(BaseForm):
user_data = FormField(BaseNewMemberForm)
permission_sets = FormField(PermissionsForm)
environment_roles = FieldList(FormField(EnvironmentForm))

View File

@@ -1,3 +1,4 @@
from atst.models import CSPRole
from atst.utils.localization import translate, translate_duration
from atst.models.environment_role import CSPRole