Exemplo n.º 1
0
def lastuserauth():
    # Make channels for the user's organizations
    username = g.user.username or g.user.userid
    channel = Channel.query.filter_by(userid=g.user.userid).first()
    if channel is None:
        channel = Channel(userid=g.user.userid,
                          name=g.user.username or g.user.userid,
                          title=g.user.fullname,
                          type=CHANNEL_TYPE.PERSON)
        db.session.add(channel)
    else:
        if channel.name != username:
            channel.name = username
        if channel.title != g.user.fullname:
            channel.title = g.user.fullname
    for org in g.user.organizations_owned():
        channel = Channel.query.filter_by(userid=org['userid']).first()
        if channel is None:
            channel = Channel(userid=org['userid'],
                              name=org['name'],
                              title=org['title'],
                              type=CHANNEL_TYPE.ORGANIZATION)
            db.session.add(channel)
        else:
            if channel.name != org['name']:
                channel.name = org['name']
            if channel.title != org['title']:
                channel.title = org['title']

    db.session.commit()
    return redirect(get_next_url())
Exemplo n.º 2
0
def video_add_speaker(channel, playlist, video):
    """
    Add Speaker to the given video
    """
    form = VideoCsrfForm()
    speaker_buid = request.form.get('speaker_name')
    if speaker_buid and form.validate():
        # look whether user is present in lastuser, if yes proceed
        userinfo = lastuser.getuser_by_userid(speaker_buid)
        if userinfo:
            speaker_channel = Channel.query.filter_by(
                userid=userinfo['userid']).first()
            if speaker_channel is None:
                # Create a channel for this speaker. They have never logged in to hasgeek.tv
                # at this point, but when they do, the channel will be waiting for them
                speaker_channel = Channel(userid=userinfo['userid'],
                                          name=userinfo['name']
                                          or userinfo['userid'],
                                          title=userinfo['title'],
                                          type=CHANNEL_TYPE.PERSON)
                db.session.add(speaker_channel)
            else:
                speaker_channel.title = userinfo['title']
                speaker_channel.name = userinfo['name'] or userinfo['userid']
            speaker_playlist = speaker_channel.playlist_for_speaking_in(
                create=True)
            if video not in speaker_playlist.videos:
                speaker_playlist.videos.append(video)
                to_return = {
                    'message': u"Added %s as speaker" % speaker_channel.title,
                    'message_type': 'added',
                    'userid': speaker_channel.userid,
                    'title': speaker_channel.title
                }
            else:
                to_return = {
                    'message':
                    u"%s is already tagged as a speaker on this video" %
                    speaker_channel.title,
                    'message_type':
                    'noop',
                    'userid':
                    speaker_channel.userid,
                    'title':
                    speaker_channel.title
                }
        else:
            to_return = {
                'message':
                'Could not find a user matching that name or email address',
                'message_type': 'failure'
            }
        db.session.commit()
        return jsonify(to_return)
    if form.csrf_token.errors:
        return jsonify(
            message="This page has expired. Please reload and try again.",
            message_type='failure')
    abort(400)