From 0a3d08c32aa684513607403bbb9603c95abbbc65 Mon Sep 17 00:00:00 2001 From: Ilias Trichopoulos Date: Wed, 11 Feb 2015 13:53:18 +0100 Subject: [PATCH] VC/Vidyo: Scaffolding for Vidyo plugin --- vc_vidyo/indico_vc_vidyo/__init__.py | 0 vc_vidyo/indico_vc_vidyo/forms.py | 34 +++++++++++ vc_vidyo/indico_vc_vidyo/plugin.py | 57 ++++++++++++++++++ .../indico_vc_vidyo/static/images/logo.png | Bin 0 -> 9992 bytes .../templates/manage_event_create_room.html | 20 ++++++ vc_vidyo/indico_vc_vidyo/util.py | 33 ++++++++++ vc_vidyo/setup.py | 44 ++++++++++++++ 7 files changed, 188 insertions(+) create mode 100644 vc_vidyo/indico_vc_vidyo/__init__.py create mode 100644 vc_vidyo/indico_vc_vidyo/forms.py create mode 100644 vc_vidyo/indico_vc_vidyo/plugin.py create mode 100644 vc_vidyo/indico_vc_vidyo/static/images/logo.png create mode 100644 vc_vidyo/indico_vc_vidyo/templates/manage_event_create_room.html create mode 100644 vc_vidyo/indico_vc_vidyo/util.py create mode 100644 vc_vidyo/setup.py diff --git a/vc_vidyo/indico_vc_vidyo/__init__.py b/vc_vidyo/indico_vc_vidyo/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/vc_vidyo/indico_vc_vidyo/forms.py b/vc_vidyo/indico_vc_vidyo/forms.py new file mode 100644 index 0000000..93b57a4 --- /dev/null +++ b/vc_vidyo/indico_vc_vidyo/forms.py @@ -0,0 +1,34 @@ +# This file is part of Indico. +# Copyright (C) 2002 - 2015 European Organization for Nuclear Research (CERN). +# +# Indico is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 3 of the +# License, or (at your option) any later version. +# +# Indico is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Indico; if not, see . + +from __future__ import unicode_literals + +from wtforms.fields.core import BooleanField +from wtforms.fields.simple import StringField, TextAreaField +from wtforms.validators import DataRequired + +from indico.web.forms.base import IndicoForm +from indico.util.i18n import _ +from indico.web.forms.fields import SingleUserField + + +class VCRoomForm(IndicoForm): + name = StringField(_('Name'), [DataRequired()], description=_('The name of the room')) + description = TextAreaField(_('Description'), description=_('The description of the room')) + moderator = SingleUserField(_('Moderator'), description=_('The moderator of the room')) + auto_mute = BooleanField(_('Auto mute'), + description=_('The VidyoDesktop clients will join the meeting muted by default' + '(audio and video)')) diff --git a/vc_vidyo/indico_vc_vidyo/plugin.py b/vc_vidyo/indico_vc_vidyo/plugin.py new file mode 100644 index 0000000..4012eb9 --- /dev/null +++ b/vc_vidyo/indico_vc_vidyo/plugin.py @@ -0,0 +1,57 @@ +# This file is part of Indico. +# Copyright (C) 2002 - 2015 European Organization for Nuclear Research (CERN). +# +# Indico is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 3 of the +# License, or (at your option) any later version. +# +# Indico is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Indico; if not, see . + +from __future__ import unicode_literals + +from wtforms.fields.html5 import URLField, EmailField +from wtforms.fields.simple import StringField + +from indico.core.plugins import IndicoPlugin, url_for_plugin, IndicoPluginBlueprint +from indico.modules.vc import VCPluginSettingsFormBase, VCPluginMixin +from indico.util.i18n import _ +from indico.web.forms.fields import MultipleItemsField, EmailListField, UnsafePasswordField +from indico_vc_vidyo.forms import VCRoomForm + + +class PluginSettingsForm(VCPluginSettingsFormBase): + event_types = MultipleItemsField(_('Supported event types'), fields=(('type', 'Type'),), + description=_("Kind of event types (conference, meeting, simple_event) supported")) + vidyo_support = EmailField(_('Vidyo email support')) + notify_emails = EmailListField(_('Notification emails'), + description=_('Additional email addresses who will always receive notifications' + '(one per line)')) + username = StringField(_('Username'), description=_('Indico username for Vidyo')) + password = UnsafePasswordField(_('Password'), description=_('Indico password for Vidyo')) + api_base_url = URLField(_('Vidyo API base URL')) + api_wsdl_url = URLField(_('Admin API WSDL URL')) + user_api = StringField(_('User API Service')) + + +class VidyoPlugin(VCPluginMixin, IndicoPlugin): + """Vidyo + + Video conferencing with Vidyo + """ + configurable = True + settings_form = PluginSettingsForm + vc_room_form = VCRoomForm + + @property + def logo_url(self): + return url_for_plugin(self.name + '.static', filename='images/logo.png') + + def get_blueprints(self): + return IndicoPluginBlueprint('vc_vidyo', __name__) diff --git a/vc_vidyo/indico_vc_vidyo/static/images/logo.png b/vc_vidyo/indico_vc_vidyo/static/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..0ae3677a7a85795b408d65c8aeea91b13c83b22f GIT binary patch literal 9992 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 SaaJb)0000 + {% trans %}Cancel{% endtrans %} + {% endcall %} +{%- endblock %} diff --git a/vc_vidyo/indico_vc_vidyo/util.py b/vc_vidyo/indico_vc_vidyo/util.py new file mode 100644 index 0000000..75f1ae5 --- /dev/null +++ b/vc_vidyo/indico_vc_vidyo/util.py @@ -0,0 +1,33 @@ +# This file is part of Indico. +# Copyright (C) 2002 - 2015 European Organization for Nuclear Research (CERN). +# +# Indico is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 3 of the +# License, or (at your option) any later version. +# +# Indico is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Indico; if not, see . + +from __future__ import unicode_literals + +from indico.util.user import retrieve_principals + + +def get_auth_users(): + """Returns a list of authorized users + + :return: list of Avatar/Group objects + """ + from indico_vc_vidyo.plugin import VidyoPlugin + return retrieve_principals(VidyoPlugin.settings.get('authorized_users')) + + +def is_auth_user(user): + """Checks if a user is authorized""" + return any(principal.containsUser(user) for principal in get_auth_users()) diff --git a/vc_vidyo/setup.py b/vc_vidyo/setup.py new file mode 100644 index 0000000..4c49929 --- /dev/null +++ b/vc_vidyo/setup.py @@ -0,0 +1,44 @@ +# This file is part of Indico. +# Copyright (C) 2002 - 2015 European Organization for Nuclear Research (CERN). +# +# Indico is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 3 of the +# License, or (at your option) any later version. +# +# Indico is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with Indico; if not, see . + +from __future__ import unicode_literals + +from setuptools import setup, find_packages + + +setup( + name='indico_vc_vidyo', + version='0.1', + url='https://github.com/indico/indico-plugins', + license='https://www.gnu.org/licenses/gpl-3.0.txt', + author='Indico Team', + author_email='indico-team@cern.ch', + packages=find_packages(), + zip_safe=False, + include_package_data=True, + platforms='any', + install_requires=[ + 'indico>=1.9.1', + 'sleekxmpp' + ], + classifiers=[ + 'Environment :: Plugins', + 'Environment :: Web Environment', + 'License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)', + 'Programming Language :: Python :: 2.7' + ], + entry_points={'indico.plugins': {'vc_vidyo = indico_vc_vidyo.plugin:VidyoPlugin'}} +)