openju / openju / bl / user.py

#!/usr/bin/python
# -*- coding: utf-8 -*-

from mongoengine.queryset import OperationError

from openju import _
from openju.model import *

from openju import current_app as app

def register(jid, nick):
    user = User(
        jid=jid,
        nick=nick)
    try:
        user.save()
    except OperationError:
        from openju.validators import UserExistsError
        raise UserExistsError(
            _(u"User with nickname %(nick)s already registered") % {
                'nick': nick})
    app.logger.info(
        u'User %s (%s) successfully registered' % (
            user['nick'],
            user['jid']),)
    return user

def get_user(nick):
    return User.objects.get(
        nick = nick)

def subscribe_user(user, user_subscribe):
    """ Subscribe user to updates of user_subscribe """
    if user_subscribe not in user.friends:
        user.friends.append(user_subscribe)
        user.save()

# def set_nickname(jid, nick):
#     validate_nickname(nick)
#     with get_mongo_db() as db:
#         db.users.update(
#             { '_id': jid },
#             { '_id': jid,
#               'nick': nick },
#             upsert=True)
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.