view data/plugin/action/ @ 608:8c908e614131

bbb: bug fix for sending msg and state
author Reimar Bauer <rb.proj AT googlemail DOT com>
date Fri, 22 Jun 2012 19:32:22 +0200
parents 7909cd319ce8
children 127da830be6c
line wrap: on
line source
# -*- coding: utf-8 -*-
    MoinMoin - Create Meeting for bigbluebutton

    @copyright: 2012 MoinMoin:ReimarBauer
    @license: GNU GPL, see COPYING for details.
import urllib
from MoinMoin.Page import Page
# pip install bigbluebutton
    from bigbluebutton import Meeting
except ImportError:
    Meeting = None
    import bbb_settings
except ImportError:
    bbb_settings = None

def execute(pagename, request):
    Lets a Moderator of a meeting closing this meeting.
    It requires a bbb_admin_group defined in
    Only a user of this group is allowed to use this action. 
    On same directory as you need
    a "" module with the SALT and the BBB_API_URL.

    Example Call by using
    || Meeting ID || <<FormText(meeting_id,maxlength=50)>> ||
    || Moderator Password: || <<FormText(password,maxlength=50)>> ||
    ||<-2:> <<FormSubmit(Send)>> ||
    if Meeting is None or bbb_settings is None:
        msg, state = ("bigbluebutton module not installed or bbb_settings missing!", "error")
        request.theme.add_msg(msg, state)
        Page(request, pagename).send_page()
    _ = request.getText
    username =
    groups = request.groups
    msg = ["Sorry you have not enough previledges", "error"]
        bbb_admin_group = groups.get(request.cfg.bbb_admin_group, [])
    except AttributeError:
        request.theme.add_msg(msg, state)
        Page(request, pagename).send_page()

    if request.user.valid and username in bbb_admin_group:
        meeting = Meeting(bbb_settings.BBB_API_URL, bbb_settings.SALT)
        msg, state = ("Can't close this meeting", "err")
        if request.args and request.args["action"] == u'submit_bbb_close_meeting':
            meeting_id = request.args["meeting_id"]
            password = request.args["password"]
            meeting_id = request.form["meeting_id"]
            password = request.form["password"]

        status = meeting.end_meeting(meeting_id, password)            
        if status:
            msg, state = ('Meeting %s closed' % meeting_id, 'info')

        request.theme.add_msg(msg, state)
        Page(request, pagename).send_page()