Merge pull request #723 from dod-ccpo/add-portfolio-user

Add portfolio user
This commit is contained in:
dandds
2019-03-29 10:26:21 -04:00
committed by GitHub
19 changed files with 415 additions and 68 deletions

View File

@@ -84,7 +84,7 @@ def make_flask_callbacks(app):
def _set_globals():
g.current_user = None
g.dev = os.getenv("FLASK_ENV", "dev") == "dev"
g.matchesPath = lambda href: re.match("^" + href, request.path)
g.matchesPath = lambda href: re.search(href, request.full_path)
g.modal = request.args.get("modal", None)
g.Authorization = Authorization
g.Permissions = Permissions

View File

@@ -1,10 +1,10 @@
from wtforms.fields import StringField, FormField, FieldList
from wtforms.fields.html5 import EmailField
from wtforms.validators import Required, Email, Length
from wtforms.fields.html5 import EmailField, TelField
from wtforms.validators import Required, Email, Length, Optional
from atst.domain.permission_sets import PermissionSets
from .forms import BaseForm
from atst.forms.validators import IsNumber
from atst.forms.validators import IsNumber, PhoneNumber
from atst.forms.fields import SelectField
from atst.utils.localization import translate
@@ -71,6 +71,10 @@ class NewForm(PermissionsForm):
email = EmailField(
translate("forms.new_member.email_label"), validators=[Required(), Email()]
)
phone_number = TelField(
translate("forms.new_member.phone_number_label"),
validators=[Optional(), PhoneNumber()],
)
dod_id = StringField(
translate("forms.new_member.dod_id_label"),
validators=[Required(), Length(min=10), IsNumber()],

View File

@@ -8,7 +8,7 @@ from atst.domain.portfolios import Portfolios
from atst.domain.audit_log import AuditLog
from atst.domain.common import Paginator
from atst.forms.portfolio import PortfolioForm
from atst.forms.portfolio_member import MembersPermissionsForm
import atst.forms.portfolio_member as member_forms
from atst.models.permissions import Permissions
from atst.domain.permission_sets import PermissionSets
from atst.domain.authz.decorator import user_can_access_decorator as user_can
@@ -63,7 +63,7 @@ def render_admin_page(portfolio, form=None):
members_data = [serialize_member_form_data(member) for member in portfolio.members]
portfolio_form = PortfolioForm(data={"name": portfolio.name})
member_perms_form = MembersPermissionsForm(
member_perms_form = member_forms.MembersPermissionsForm(
data={"members_permissions": members_data}
)
return render_template(
@@ -71,6 +71,7 @@ def render_admin_page(portfolio, form=None):
form=form,
portfolio_form=portfolio_form,
member_perms_form=member_perms_form,
member_form=member_forms.NewForm(),
portfolio=portfolio,
audit_events=audit_events,
user=g.current_user,

View File

@@ -92,7 +92,12 @@ def create_member(portfolio_id):
flash("new_portfolio_member", new_member=member, portfolio=portfolio)
return redirect(
url_for("portfolios.portfolio_members", portfolio_id=portfolio.id)
url_for(
"portfolios.portfolio_admin",
portfolio_id=portfolio.id,
fragment="portfolio-members",
_anchor="portfolio-members",
)
)
except AlreadyExistsError:
return render_template(

View File

@@ -22,10 +22,9 @@ MESSAGES = {
"category": "success",
},
"new_portfolio_member": {
"title_template": "Member added successfully",
"title_template": "Success!",
"message_template": """
<p>{{ new_member.user_name }} was successfully invited via email to this portfolio. They do not yet have access to any environments.</p>
<p><a href="{{ url_for('portfolios.update_member', portfolio_id=portfolio.id, member_id=new_member.user_id) }}">Add environment access.</a></p>
<p>You have successfully invited {{ new_member.user_name }} to the portfolio admin.</p>
""",
"category": "success",
},