示例#1
0
 def process_request(self, request):
     if request.user.is_authenticated():
         now = datetime.now()
         if now - request.user.last_access > settings.LAST_ACCESS_UPDATE_INTERVAL:
             request.user.last_access = now
             User.objects(id=request.user.id).update_one(
                 set__last_access=now)
示例#2
0
 def wrapper():
     sender = cache.get('CALL_EVENT_%s' % request.user.id, None)
     if sender is None:
         return ''
     sender = User.objects(id=sender).first()
     if not sender:
         return ''
     return str(sender)
示例#3
0
 def wrapper():
     sender = cache.get('CALL_EVENT_%s' % request.user.id, None)
     if sender is None:
         return ''
     sender = User.objects(id=sender).first()
     if not sender:
         return ''
     return str(sender)
示例#4
0
文件: tests.py 项目: dgk/modnoemesto
    def test_last_name(self):
        email = RegisterTestCase.data_dict['email']
        data_dict = RegisterTestCase.data_dict.copy()

        for tpl in ['','      ','12345', u'Ять']:
            data_dict['last_name'] = tpl
            response = self.c.post('/', data_dict)
            self.assertEqual(response.status_code, 200)
            self.assertEqual(User.objects(email=email).count(), 0)
示例#5
0
def user_list_file(request, format):
    mimetypes = dict(
            txt='text/plain',
            xml='xml/plain',
    )
    return direct_to_template(request,
                              'admin/user_list.%s' % format,
                              dict(list=User.objects(), mimetype=mimetypes[format])
    )
示例#6
0
def _send_invite(sender, email, name):
    if User.objects(email=email).count():
        return (email, _('User already registered'), False)

    invite = Invite(sender=sender,
                recipient_email=email,
                recipient_name=name)

    invite.save()
    invite.send()

    return (email, _('Invite sent'), True)
示例#7
0
def call_user(request, id, user_id=None):
    recipient = User.objects(id=id).first()
    if not recipient:
        return HttpResponse('NOT FOUND')
    if not recipient.is_online():
        return HttpResponse('OFFLINE')
    last_view = cache.get('LAST_VIEW_%s' % recipient.id, None)
    if last_view is None:
        user_id = user_id or request.user.id
        cache.set('CALL_EVENT_%s' % recipient.id, user_id, settings.VIDEO_CALL_INTERVAL_UPDATE)
        return HttpResponse('WHITE')
    return HttpResponse('OK')
示例#8
0
def call_user(request, id):
    session_key = request.GET.get('session_key', None)
    if not session_key:
        return HttpResponse('Need session_key')
    engine = import_module(settings.SESSION_ENGINE)
    session = engine.SessionStore(session_key)
    user_id = session.get(SESSION_KEY, None)
    if not user_id:
        return HttpResponse('Bad session_key')
    user = User.objects(id=user_id).first()
    if not user:
        return HttpResponse('Can`t find request user')
    return ajax_call_user(request, id, user.id)
示例#9
0
def call_user(request, id, user_id=None):
    recipient = User.objects(id=id).first()
    if not recipient:
        return HttpResponse('NOT FOUND')
    if not recipient.is_online():
        return HttpResponse('OFFLINE')
    last_view = cache.get('LAST_VIEW_%s' % recipient.id, None)
    if last_view is None:
        user_id = user_id or request.user.id
        cache.set('CALL_EVENT_%s' % recipient.id, user_id,
                  settings.VIDEO_CALL_INTERVAL_UPDATE)
        return HttpResponse('WHITE')
    return HttpResponse('OK')
示例#10
0
def call_user(request, id):
    session_key = request.GET.get('session_key', None)
    if not session_key:
        return HttpResponse('Need session_key')
    engine = import_module(settings.SESSION_ENGINE)
    session = engine.SessionStore(session_key)
    user_id = session.get(SESSION_KEY, None)
    if not user_id:
        return HttpResponse('Bad session_key')
    user = User.objects(id=user_id).first()
    if not user:
        return HttpResponse('Can`t find request user')
    return ajax_call_user(request, id, user.id)
示例#11
0
文件: tests.py 项目: dgk/modnoemesto
    def test_phone(self):
        email = RegisterTestCase.data_dict['email']
        data_dict = RegisterTestCase.data_dict.copy()

        for tpl1,tpl2 in [
                ('1234','1234567'),
                ('1-23','123-4567'),
                ('1 23','123 4567'),
                ('qwe','qwertyu'),
                ('12','123456'),
                ('','1234567'),
                ('123',''),
                ]:
            data_dict['phone_0'] = tpl1
            data_dict['phone_1'] = tpl2
            response = self.c.post('/', data_dict)
            self.assertEqual(response.status_code, 200)
            self.assertEqual(User.objects(email=email).count(), 0)
示例#12
0
def cam_view_notify(request, format):
    """ API:
        ?session_key=<Fx24>&camera_id=<Fx24>&status=connect
        ?session_key=<Fx24>&camera_id=<Fx24>&status=next&time=<sec>
        ?session_key=<Fx24>&camera_id=<Fx24>&status=disconnect&time=<sec>

        0 OK

        -1 BAD PARAMS
        -500 INTERNAL ERROR
    """

    from apps.media.documents import File

    request_id = time()
    def log_debug(text):
        info = '\n'.join([
            "session_key=%s" % session_key,
            "user_id=%s" % (user.id if user else None),
            "camera_id=%s" % camera_id,
        ])
        logger.debug('cam_view_notify %s\n%s\n%s' % (request_id, info, text))

    logger.debug('cam_view_notify %s\nrequest %s' % (request_id, repr(request.GET.items())))

    user = None
    session_key = None
    camera_id = None
    try:
        if not request.GET:
            raise CameraAccessor.APIException("Bad params")
        status = request.GET.get('status', None)
        session_key = request.GET.get('session_key', None)
        camera_id = request.GET.get('camera_id', None)
        if not (status and session_key and camera_id):
            raise CameraAccessor.APIException("Bad params")
        extra_time = request.GET.get('time', None)
        if extra_time is not None:
            if not extra_time.isdigit():
                raise CameraAccessor.APIException("Time must by a digit")
            extra_time = int(extra_time)
            if extra_time > settings.TIME_INTERVAL_NOTIFY or extra_time < 0:
                raise CameraAccessor.APIException("Bad time interval")

        # extract data from session
        engine = import_module(settings.SESSION_ENGINE)
        session = engine.SessionStore(session_key)
        user_id = session.get(SESSION_KEY, None)
        if not user_id:
            raise CameraAccessor.APIException("Need user_id")
        user = User.objects(id=user_id).first()
        if not user:
            raise CameraAccessor.APIException("Bad user_id")
        camera = Camera.objects(id=camera_id).first()
        if not camera:
            raise CameraAccessor.APIException("Can`t found camera by camera_id")

        result = CameraAccessor(status, user, camera, session, extra_time)
    except CameraAccessor.APIException, e:
        params = (-1, 0, 0)
        log_debug('api error\n%s\n%s' % (e, traceback.format_exc()))
示例#13
0
 def handle(self, *args, **options):
     for user in User.objects().order_by('-date_joined'):
         print user.email, '\t', user.date_joined
示例#14
0
 def process_request(self, request):
     if request.user.is_authenticated():
         now = datetime.now()
         if now - request.user.last_access > settings.LAST_ACCESS_UPDATE_INTERVAL:
             request.user.last_access = now
             User.objects(id=request.user.id).update_one(set__last_access=now)
示例#15
0
def cam_view_notify(request, format):
    """ API:
        ?session_key=<Fx24>&camera_id=<Fx24>&status=connect
        ?session_key=<Fx24>&camera_id=<Fx24>&status=next&time=<sec>
        ?session_key=<Fx24>&camera_id=<Fx24>&status=disconnect&time=<sec>

        0 OK

        -1 BAD PARAMS
        -500 INTERNAL ERROR
    """

    from apps.media.documents import File

    request_id = time()

    def log_debug(text):
        info = '\n'.join([
            "session_key=%s" % session_key,
            "user_id=%s" % user.id if user else None,
            "camera_id=%s" % camera_id,
        ])
        logger.debug('cam_view_notify %s\n%s\n%s' % (request_id, info, text))

    logger.debug('cam_view_notify %s\nrequest %s' %
                 (request_id, repr(request.GET.items())))

    user = None
    session_key = None
    camera_id = None
    try:
        if not request.GET:
            raise CameraAccessor.APIException("Bad params")
        status = request.GET.get('status', None)
        session_key = request.GET.get('session_key', None)
        camera_id = request.GET.get('camera_id', None)
        if not (status and session_key and camera_id):
            raise CameraAccessor.APIException("Bad params")
        extra_time = request.GET.get('time', None)
        if extra_time is not None:
            if not extra_time.isdigit():
                raise CameraAccessor.APIException("Time must by a digit")
            extra_time = int(extra_time)
            if extra_time > settings.TIME_INTERVAL_NOTIFY or extra_time < 0:
                raise CameraAccessor.APIException("Bad time interval")

        # extract data from session
        engine = import_module(settings.SESSION_ENGINE)
        session = engine.SessionStore(session_key)
        user_id = session.get(SESSION_KEY, None)
        if not user_id:
            raise CameraAccessor.APIException("Need user_id")
        user = User.objects(id=user_id).first()
        if not user:
            raise CameraAccessor.APIException("Bad user_id")
        camera = Camera.objects(id=camera_id).first()
        if not camera:
            raise CameraAccessor.APIException(
                "Can`t found camera by camera_id")

        result = CameraAccessor(status, user, camera, session, extra_time)
    except CameraAccessor.APIException, e:
        params = (-1, 0, 0)
        log_debug('api error\n%s\n%s' % (e, traceback.format_exc()))
示例#16
0
def statistic(request):
    return direct_to_template(request, 'admin/statistic.html', {
        'users_active_count': User.objects(is_active=True).count(),
        'users_inactive_count': User.objects(is_active=False).count(),
        'users_online_count': User.objects(last_access__gt=User.get_delta_time()).count(),
    })
示例#17
0
 def user(self):
     return User.objects(id=self.user_id).first()