- Added permissions to the partner service configuration
- Corrected a nasty bug where dynamic boolean fields were not returned correctly
This commit is contained in:
@@ -51,10 +51,12 @@ def edit_partner(partner_id):
|
||||
partner = Partner.query.get_or_404(partner_id) # This will return a 404 if no partner is found
|
||||
tenant = Tenant.query.get_or_404(partner.tenant_id)
|
||||
form = EditPartnerForm(obj=partner)
|
||||
|
||||
if request.method == 'GET':
|
||||
form.tenant.data = tenant.name
|
||||
|
||||
if form.validate_on_submit():
|
||||
current_app.logger.debug(f"Form data for Partner: {form.data}")
|
||||
# Populate the user with form data
|
||||
form.populate_obj(partner)
|
||||
update_logging_information(partner, dt.now(tz.utc))
|
||||
@@ -127,10 +129,11 @@ def partner_service():
|
||||
form = PartnerServiceForm()
|
||||
|
||||
if form.validate_on_submit():
|
||||
partner_id = session.get('partner_id', None)
|
||||
if not partner_id:
|
||||
partner = session.get('partner', None)
|
||||
if not partner:
|
||||
flash('No partner has been selected. Set partner before adding services.', 'warning')
|
||||
return redirect(prefixed_url_for('administration_bp.partners'))
|
||||
partner_id = partner['id']
|
||||
new_partner_service = PartnerService()
|
||||
form.populate_obj(new_partner_service)
|
||||
set_logging_information(new_partner_service, dt.now(tz.utc))
|
||||
@@ -156,7 +159,8 @@ def partner_service():
|
||||
@roles_accepted('Super User')
|
||||
def edit_partner_service(partner_service_id):
|
||||
partner_service = PartnerService.query.get_or_404(partner_service_id)
|
||||
partner_id = session.get('partner_id', None)
|
||||
partner = session.get('partner', None)
|
||||
partner_id = session['partner']['id']
|
||||
|
||||
form = EditPartnerServiceForm(obj=partner_service)
|
||||
partner_service_config = cache_manager.partner_services_config_cache.get_config(partner_service.type,
|
||||
@@ -165,10 +169,21 @@ def edit_partner_service(partner_service_id):
|
||||
current_app.logger.debug(f"Configuration config for {partner_service.type} {partner_service.type_version}: "
|
||||
f"{configuration_config}")
|
||||
form.add_dynamic_fields("configuration", configuration_config, partner_service.configuration)
|
||||
permissions_config = partner_service_config.get('permissions')
|
||||
current_app.logger.debug(f"Permissions config for {partner_service.type} {partner_service.type_version}: "
|
||||
f"{permissions_config}")
|
||||
form.add_dynamic_fields("permissions", permissions_config, partner_service.permissions)
|
||||
|
||||
if form.validate_on_submit():
|
||||
current_app.logger.debug(f"Form returned: {form.data}")
|
||||
raw_form_data = request.form.to_dict()
|
||||
current_app.logger.debug(f"Raw form data: {raw_form_data}")
|
||||
|
||||
form.populate_obj(partner_service)
|
||||
partner_service.configuration = form.get_dynamic_data('configuration')
|
||||
partner_service.permissions = form.get_dynamic_data('permissions')
|
||||
current_app.logger.debug(f"Partner Service configuration: {partner_service.configuration}")
|
||||
current_app.logger.debug(f"Partner Service permissions: {partner_service.permissions}")
|
||||
|
||||
# update partner relationship
|
||||
partner_service.partner_id = partner_id
|
||||
@@ -201,10 +216,11 @@ def edit_partner_service(partner_service_id):
|
||||
def partner_services():
|
||||
page = request.args.get('page', 1, type=int)
|
||||
per_page = request.args.get('per_page', 10, type=int)
|
||||
partner_id = session.get('partner_id', None)
|
||||
if not partner_id:
|
||||
partner = session.get('partner', None)
|
||||
if not partner:
|
||||
flash('No partner has been selected. Set partner before adding services.', 'warning')
|
||||
return redirect(prefixed_url_for('administration_bp.partners'))
|
||||
partner_id = session['partner']['id']
|
||||
|
||||
query = PartnerService.query.filter(PartnerService.partner_id == partner_id)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user