コード例 #1
0
 def _process(self):
     form = EventProtectionForm(obj=FormDefaults(**self._get_defaults()),
                                event=self.event)
     selectable_permissions = {
         k
         for k, v in get_available_permissions(Event).items()
         if v.user_selectable
     }
     user_permissions = [(p.principal, set(p.permissions))
                         for p in self.event.acl_entries]
     hidden_permissions = sorted(
         [(principal, sorted(perms))
          for principal, perms in user_permissions
          if perms and not (perms & selectable_permissions)],
         key=lambda x: (x[0].principal_order, x[0].name.lower()))
     form.permissions.hidden_permissions = [
         (p.name, perms) for p, perms in hidden_permissions
     ]
     if form.validate_on_submit():
         update_permissions(self.event, form)
         update_event_protection(
             self.event, {
                 'protection_mode': form.protection_mode.data,
                 'own_no_access_contact': form.own_no_access_contact.data,
                 'access_key': form.access_key.data,
                 'visibility': form.visibility.data,
                 'public_regform_access': form.public_regform_access.data
             })
         self._update_session_coordinator_privs(form)
         flash(_('Protection settings have been updated'), 'success')
         return redirect(url_for('.protection', self.event))
     return WPEventProtection.render_template('event_protection.html',
                                              self.event,
                                              'protection',
                                              form=form)
コード例 #2
0
ファイル: sessions.py プロジェクト: wasm-network/indico
 def _process(self):
     form = SessionProtectionForm(obj=FormDefaults(**self._get_defaults()), session=self.session,
                                  prefix='session-protection-')
     if form.validate_on_submit():
         update_permissions(self.session, form)
         update_session(self.session, {'protection_mode': form.protection_mode.data})
         return jsonify_data(flash=False, html=_render_session_list(self.event))
     return jsonify_template('events/management/protection_dialog.html', form=form)
コード例 #3
0
 def _process(self):
     form = ContributionProtectionForm(obj=FormDefaults(**self._get_defaults()), contrib=self.contrib,
                                       prefix='contribution-protection-')
     if form.validate_on_submit():
         update_permissions(self.contrib, form)
         update_contribution(self.contrib, {'protection_mode': form.protection_mode.data})
         return jsonify_data(flash=False, **self.list_generator.render_list(self.contrib))
     return jsonify_template('events/management/protection_dialog.html', form=form)
コード例 #4
0
ファイル: protection.py プロジェクト: jacg/indico
 def _process(self):
     form = EventProtectionForm(obj=FormDefaults(**self._get_defaults()), event=self.event)
     if form.validate_on_submit():
         update_permissions(self.event, form)
         update_event_protection(self.event, {'protection_mode': form.protection_mode.data,
                                              'own_no_access_contact': form.own_no_access_contact.data,
                                              'access_key': form.access_key.data,
                                              'visibility': form.visibility.data})
         self._update_session_coordinator_privs(form)
         flash(_('Protection settings have been updated'), 'success')
         return redirect(url_for('.protection', self.event))
     return WPEventProtection.render_template('event_protection.html', self.event, 'protection', form=form)
コード例 #5
0
 def _process(self):
     form = CategoryProtectionForm(obj=self._get_defaults(), category=self.category)
     if form.validate_on_submit():
         update_permissions(self.category, form)
         update_category(self.category,
                         {'protection_mode': form.protection_mode.data,
                          'own_no_access_contact': form.own_no_access_contact.data,
                          'event_creation_restricted': form.event_creation_restricted.data,
                          'visibility': form.visibility.data})
         flash(_('Protection settings of the category have been updated'), 'success')
         return redirect(url_for('.manage_protection', self.category))
     return WPCategoryManagement.render_template('management/category_protection.html', self.category, 'protection',
                                                 form=form)