コード例 #1
0
ファイル: controllers.py プロジェクト: OmeGak/indico
    def _process(self):
        defaults = FormDefaults(self.plugin.get_vc_room_attach_form_defaults(self.event_new))
        form = self.plugin.vc_room_attach_form(
            prefix="vc-", obj=defaults, event=self.event_new, service=self.plugin.service_name
        )

        if form.validate_on_submit():
            vc_room = form.data["room"]
            if not self.plugin.can_manage_vc_rooms(session.user, self.event_new):
                flash(
                    _("You are not allowed to attach {plugin_name} rooms to this event.").format(
                        plugin_name=self.plugin.friendly_name
                    ),
                    "error",
                )
            elif not self.plugin.can_manage_vc_room(session.user, vc_room):
                flash(_("You are not authorized to attach the room '{room.name}'".format(room=vc_room)), "error")
            else:
                event_vc_room = process_vc_room_association(self.plugin, self.event_new, vc_room, form)
                if event_vc_room:
                    flash(_("The room has been attached to the event."), "success")
                    db.session.add(event_vc_room)
            return redirect_or_jsonify(url_for(".manage_vc_rooms", self.event_new), flash=False)

        return WPVCManageEvent.render_template(
            "attach_room.html",
            self._conf,
            event=self.event_new,
            form=form,
            skip_fields=form.conditional_fields | {"room"},
            plugin=self.plugin,
        )
コード例 #2
0
ファイル: controllers.py プロジェクト: bkolobara/indico
 def _process(self):
     quiet = request.form.get('quiet') == '1'
     force = request.form.get('force') == '1'
     persistent = request.form.get('persistent') == '1' and api_settings.get('allow_persistent')
     old_key = self.user.api_key
     if old_key:
         if not force:
             raise BadRequest('There is already an API key for this user')
         if old_key.is_blocked and not session.user.is_admin:
             raise Forbidden
         old_key.is_active = False
         db.session.flush()
     key = APIKey(user=self.user)
     db.session.add(key)
     if persistent:
         key.is_persistent_allowed = persistent
     elif old_key:
         key.is_persistent_allowed = old_key.is_persistent_allowed
     if not quiet:
         if old_key:
             flash(_('Your API key has been successfully replaced.'), 'success')
             if old_key.use_count:
                 flash(_('Please update any applications which use old key.'), 'warning')
         else:
             flash(_('Your API key has been successfully created.'), 'success')
     db.session.flush()
     return redirect_or_jsonify(url_for('api.user_profile'), flash=not quiet,
                                is_persistent_allowed=key.is_persistent_allowed)
コード例 #3
0
ファイル: controllers.py プロジェクト: smagill/indico
 def _process(self):
     quiet = request.form.get('quiet') == '1'
     force = request.form.get('force') == '1'
     persistent = request.form.get(
         'persistent') == '1' and api_settings.get('allow_persistent')
     old_key = self.user.api_key
     if old_key:
         if not force:
             raise BadRequest('There is already an API key for this user')
         if old_key.is_blocked and not session.user.is_admin:
             raise Forbidden
         old_key.is_active = False
         db.session.flush()
     key = APIKey(user=self.user)
     db.session.add(key)
     if persistent:
         key.is_persistent_allowed = persistent
     elif old_key:
         key.is_persistent_allowed = old_key.is_persistent_allowed
     if not quiet:
         if old_key:
             flash(_('Your API key has been successfully replaced.'),
                   'success')
             if old_key.use_count:
                 flash(
                     _('Please update any applications which use old key.'),
                     'warning')
         else:
             flash(_('Your API key has been successfully created.'),
                   'success')
     db.session.flush()
     return redirect_or_jsonify(
         url_for('api.user_profile'),
         flash=not quiet,
         is_persistent_allowed=key.is_persistent_allowed)
コード例 #4
0
ファイル: controllers.py プロジェクト: marcosmolla/indico
 def _process(self):
     event = self._conf
     can_modify = session.avatar and self.plugin.can_be_modified(
         session.avatar, event)
     plugin_settings = self.plugin.settings.get_all()
     defaults = FormDefaults(self.plugin.event_settings.get_all(event),
                             **plugin_settings)
     form = self.plugin.event_settings_form(prefix='payment-',
                                            obj=defaults,
                                            plugin_settings=plugin_settings)
     auto_currency, invalid_currency, messages = self._check_currencies(
         form)
     if can_modify and form.validate_on_submit() and not invalid_currency:
         self.plugin.event_settings.set_multi(event, form.data)
         flash(
             _('Settings for {} saved').format(self.plugin.title),
             'success')
         if form.enabled.data and auto_currency is not None:
             event_settings.set(event, 'currency', auto_currency)
             flash(
                 _("The event's currency has been changed to {}.").format(
                     auto_currency), 'warning')
         if self.protection_overridden:
             return redirect_or_jsonify(request.url)
         else:
             return redirect_or_jsonify(url_for('.event_settings', event),
                                        plugin=self.plugin.name,
                                        enabled=form.enabled.data)
     widget_attrs = {}
     if not can_modify:
         widget_attrs = {
             field.short_name: {
                 'disabled': True
             }
             for field in form
         }
     return WPPaymentEventManagement.render_template(
         'event_plugin_edit.html',
         event,
         event=event,
         form=form,
         plugin=self.plugin,
         can_modify=can_modify,
         messages=messages,
         widget_attrs=widget_attrs,
         invalid_currency=invalid_currency)
コード例 #5
0
ファイル: controllers.py プロジェクト: bkolobara/indico
 def _process(self):
     quiet = request.form.get('quiet') == '1'
     key = self.user.api_key
     key.is_persistent_allowed = api_settings.get('allow_persistent') and request.form['enabled'] == '1'
     if not quiet:
         if key.is_persistent_allowed:
             flash(_('You can now use persistent signatures.'), 'success')
         else:
             flash(_('Persistent signatures have been disabled for your API key.'), 'success')
     return redirect_or_jsonify(url_for('api.user_profile'), flash=not quiet, enabled=key.is_persistent_allowed)
コード例 #6
0
ファイル: controllers.py プロジェクト: DavidAndreev/indico
 def _process(self):
     quiet = request.form.get('quiet') == '1'
     key = self.user.api_key
     key.is_persistent_allowed = api_settings.get('allow_persistent') and request.form['enabled'] == '1'
     if not quiet:
         if key.is_persistent_allowed:
             flash(_('You can now use persistent signatures.'), 'success')
         else:
             flash(_('Persistent signatures have been disabled for your API key.'), 'success')
     return redirect_or_jsonify(url_for('api.user_profile'), flash=not quiet, enabled=key.is_persistent_allowed)
コード例 #7
0
ファイル: controllers.py プロジェクト: wtakase/indico
 def _process(self):
     event = self._conf
     can_modify = session.user and self.plugin.can_be_modified(session.user, event)
     plugin_settings = self.plugin.settings.get_all()
     defaults = FormDefaults(self.plugin.event_settings.get_all(event), **plugin_settings)
     form = self.plugin.event_settings_form(prefix='payment-', obj=defaults, plugin_settings=plugin_settings)
     if can_modify and form.validate_on_submit():
         self.plugin.event_settings.set_multi(event, form.data)
         flash(_('Settings for {} saved').format(self.plugin.title), 'success')
         if self.protection_overridden:
             return redirect_or_jsonify(request.url)
         else:
             return redirect_or_jsonify(url_for('.event_settings', event), plugin=self.plugin.name,
                                        enabled=form.enabled.data)
     widget_attrs = {}
     if not can_modify:
         widget_attrs = {field.short_name: {'disabled': True} for field in form}
     invalid_regforms = self.plugin.get_invalid_regforms(event)
     return WPPaymentEventManagement.render_template('event_plugin_edit.html', event, event=event, form=form,
                                                     plugin=self.plugin, can_modify=can_modify,
                                                     widget_attrs=widget_attrs, invalid_regforms=invalid_regforms)
コード例 #8
0
ファイル: controllers.py プロジェクト: javfg/indico
 def _process(self):
     plugin = self.plugin
     form = None
     with plugin.plugin_context():
         if plugin.settings_form:
             defaults = FormDefaults(**plugin.settings.get_all())
             form = plugin.settings_form(obj=defaults)
             if form.validate_on_submit():
                 plugin.settings.set_multi(form.data)
                 flash(_('Settings saved ({0})').format(plugin.title), 'success')
                 return redirect_or_jsonify(request.url)
         return WPPlugins.render_template('details.html', plugin=plugin, form=form,
                                          back_url=url_for(self.back_button_endpoint))
コード例 #9
0
ファイル: controllers.py プロジェクト: OmeGak/indico
 def _process(self):
     plugin = self.plugin
     form = None
     with plugin.plugin_context():
         if plugin.settings_form:
             defaults = FormDefaults(**plugin.settings.get_all())
             form = plugin.settings_form(obj=defaults)
             if form.validate_on_submit():
                 plugin.settings.set_multi(form.data)
                 flash(_('Settings saved ({0})').format(plugin.title), 'success')
                 return redirect_or_jsonify(request.url)
         return WPPlugins.render_template('details.html', plugin=plugin, form=form,
                                          back_url=url_for(self.back_button_endpoint))
コード例 #10
0
ファイル: controllers.py プロジェクト: svdoever/indico
 def _process(self):
     event = self._conf
     can_modify = session.user and self.plugin.can_be_modified(session.user, event)
     plugin_settings = self.plugin.settings.get_all()
     defaults = FormDefaults(self.plugin.event_settings.get_all(event), **plugin_settings)
     form = self.plugin.event_settings_form(prefix='payment-', obj=defaults, plugin_settings=plugin_settings)
     auto_currency, invalid_currency, messages = self._check_currencies(form)
     if can_modify and form.validate_on_submit() and not invalid_currency:
         self.plugin.event_settings.set_multi(event, form.data)
         flash(_('Settings for {} saved').format(self.plugin.title), 'success')
         if form.enabled.data and auto_currency is not None:
             event_settings.set(event, 'currency', auto_currency)
             flash(_("The event's currency has been changed to {}.").format(auto_currency), 'warning')
         if self.protection_overridden:
             return redirect_or_jsonify(request.url)
         else:
             return redirect_or_jsonify(url_for('.event_settings', event), plugin=self.plugin.name,
                                        enabled=form.enabled.data)
     widget_attrs = {}
     if not can_modify:
         widget_attrs = {field.short_name: {'disabled': True} for field in form}
     return WPPaymentEventManagement.render_template('event_plugin_edit.html', event, event=event, form=form,
                                                     plugin=self.plugin, can_modify=can_modify, messages=messages,
                                                     widget_attrs=widget_attrs, invalid_currency=invalid_currency)
コード例 #11
0
    def _process(self):
        defaults = FormDefaults(self.plugin.get_vc_room_attach_form_defaults(self.event))
        form = self.plugin.vc_room_attach_form(prefix='vc-', obj=defaults, event=self.event,
                                               service=self.plugin.service_name)

        if form.validate_on_submit():
            vc_room = form.data['room']
            if not self.plugin.can_manage_vc_rooms(session.avatar, self.event):
                flash(_("You are not allowed to attach {plugin_name} rooms to this event.").format(
                    plugin_name=self.plugin.friendly_name), 'error')
            elif not self.plugin.can_manage_vc_room(session.avatar, vc_room):
                flash(_("You are not authorized to attach the room '{room.name}'".format(room=vc_room)), 'error')
            else:
                event_vc_room = process_vc_room_association(self.plugin, self.event, vc_room, form)
                if event_vc_room:
                    flash(_("The room has been attached to the event."), 'success')
                    db.session.add(event_vc_room)
            return redirect_or_jsonify(url_for('.manage_vc_rooms', self.event), flash=False)

        return WPVCManageEvent.render_template('attach_room.html', self._conf, event=self._conf, form=form,
                                               skip_fields=form.conditional_fields | {'room'},
                                               plugin=self.plugin)