def LoginPoint(request, redirect_field_name=REDIRECT_FIELD_NAME, current_app=None, extra_context=None, ): ok = auth.is_identity_authenticated() lg.out(4, 'django.login_point is_identity_authenticated=%s' % ok) if not ok: return HttpResponseRedirect(SETUP_PATH) # if installer.IsExist() and installer.A().state == 'DONE': # return HttpResponseRedirect(SETUP_PATH) user = authenticate( username=auth.username(), password=auth.password()) lg.out(4, ' authenticate user is %s' % user) if user is not None: if not user.is_active: lg.out(4, ' user not active') logout(request) return HttpResponseRedirect(SETUP_PATH) else: newuser = User.objects.create_user( auth.username(), password=auth.password()) newuser.save() user = authenticate( username=auth.username(), password=auth.password()) if user is None: lg.out(4, ' authenticate after creating a new user failed') logout(request) return HttpResponseRedirect(SETUP_PATH) lg.out(4, ' created new user %s %s' % (newuser, user)) login(request, user) redirect_to = request.POST.get(redirect_field_name, request.GET.get(redirect_field_name, '')) if not is_safe_url(url=redirect_to, host=request.get_host()): redirect_to = resolve_url(settings.LOGIN_REDIRECT_URL) lg.out(4, ' redirecting to %s' % redirect_to) return HttpResponseRedirect(redirect_to)
def LoginPoint( request, redirect_field_name=REDIRECT_FIELD_NAME, current_app=None, extra_context=None, ): ok = auth.is_identity_authenticated() lg.out(4, 'django.login_point is_identity_authenticated=%s' % ok) if not ok: return HttpResponseRedirect(SETUP_PATH) # if installer.IsExist() and installer.A().state == 'DONE': # return HttpResponseRedirect(SETUP_PATH) user = authenticate(username=auth.username(), password=auth.password()) lg.out(4, ' authenticate user is %s' % user) if user is not None: if not user.is_active: lg.out(4, ' user not active') logout(request) return HttpResponseRedirect(SETUP_PATH) else: newuser = User.objects.create_user(auth.username(), password=auth.password()) newuser.save() user = authenticate(username=auth.username(), password=auth.password()) if user is None: lg.out(4, ' authenticate after creating a new user failed') logout(request) return HttpResponseRedirect(SETUP_PATH) lg.out(4, ' created new user %s %s' % (newuser, user)) login(request, user) redirect_to = request.POST.get(redirect_field_name, request.GET.get(redirect_field_name, '')) if not is_safe_url(url=redirect_to, host=request.get_host()): redirect_to = resolve_url(settings.LOGIN_REDIRECT_URL) lg.out(4, ' redirecting to %s' % redirect_to) return HttpResponseRedirect(redirect_to)
def __call__(self, request, id): try: if not (auth.is_session_authenticated(request.user) and auth.is_identity_authenticated()): return HttpResponseBadRequest('You need to be logged in to access the chat system.') StatusCode = 0 # Default status code is 0 i.e. no new data. self.request = request try: self.request_time = float(self.request.REQUEST['time']) except: return HttpResponseBadRequest("What's the time?") try: self.ThisRoom = get_object_or_404(Room, id=id) except: lg.exc('id=%s' % str(id)) return HttpResponseBadRequest("Not found Room with id=%s" % str(id)) NewDescription = None if self.request.method == "POST": # User has sent new data. action = self.request.POST['action'] msg_text = '' if action == 'postmsg': msg_text = self.request.POST['message'] if action == 'room_join': RoomMember.objects.create_member(idurl=id, # name=nameurl.GetName(id), room=self.ThisRoom) if action == 'room_leave': RoomMember.objects.remove_member(idurl=id, # name=nameurl.GetName(id), room=self.ThisRoom) if len(msg_text.strip()) > 0: # Ignore empty strings. Message.objects.create_message( my_id.getLocalID(), self.ThisRoom, escape(msg_text)) message.SendMessage( str(self.ThisRoom.idurl), str(msg_text)) else: # If a GET, make sure that no action was specified. if self.request.GET.get('action', None): return HttpResponseBadRequest('Need to POST if you want to send data.') NewMessages = self.ThisRoom.message_set.filter(unix_timestamp__gt=self.request_time) if NewMessages: StatusCode = 1 NewMembers = RoomMember.objects.filter(room=self.ThisRoom) NewMembersNames = map(lambda mem: nameurl.GetName(mem.idurl), NewMembers) l = len(NewMessages) if l > JQCHAT_DISPLAY_COUNT: NewMessages = NewMessages[l - JQCHAT_DISPLAY_COUNT:] response = render_to_response('jqchat/chat_payload.json', {'current_unix_timestamp': time.time(), 'NewMessages': NewMessages, 'StatusCode': StatusCode, 'NewDescription': NewDescription, 'NewMembers': NewMembers, 'NewMembersNames': NewMembersNames, 'CustomPayload': '', 'TimeDisplayFormat': DATE_FORMAT }, context_instance=RequestContext(self.request)) response['Content-Type'] = 'text/plain; charset=utf-8' response['Cache-Control'] = 'no-cache' return response except: e = lg.exc() return HttpResponseBadRequest('EXCEPTION:' + e)
def __call__(self, request, id): try: if not (auth.is_session_authenticated(request.user) and auth.is_identity_authenticated()): return HttpResponseBadRequest( 'You need to be logged in to access the chat system.') StatusCode = 0 # Default status code is 0 i.e. no new data. self.request = request try: self.request_time = float(self.request.REQUEST['time']) except: return HttpResponseBadRequest("What's the time?") try: self.ThisRoom = get_object_or_404(Room, id=id) except: lg.exc('id=%s' % str(id)) return HttpResponseBadRequest("Not found Room with id=%s" % str(id)) NewDescription = None if self.request.method == "POST": # User has sent new data. action = self.request.POST['action'] msg_text = '' if action == 'postmsg': msg_text = self.request.POST['message'] if action == 'room_join': RoomMember.objects.create_member( idurl=id, # name=nameurl.GetName(id), room=self.ThisRoom) if action == 'room_leave': RoomMember.objects.remove_member( idurl=id, # name=nameurl.GetName(id), room=self.ThisRoom) if len(msg_text.strip()) > 0: # Ignore empty strings. Message.objects.create_message(my_id.getLocalID(), self.ThisRoom, escape(msg_text)) key_id = 'master' # self.ThisRoom.name or 'master' recipient = global_id.MakeGlobalID( idurl=str(self.ThisRoom.idurl), key_alias=key_id, ) # recipient = '%s$%s' % (key_id, global_id.UrlToGlobalID(str(self.ThisRoom.idurl))) from twisted.internet.defer import Deferred ret = api.send_message(recipient, str(msg_text)) if isinstance(ret, Deferred): ret.addCallback( lambda resp: lg.out(2, 'CHAT: %s' % str(resp))) ret.addErrback( lambda resp: lg.err('CHAT: %s' % str(resp))) else: lg.out(2, 'CHAT: %s' % str(ret)) # message.SendMessage( # str(msg_text), # str(self.ThisRoom.idurl), # 'master', # ) else: # If a GET, make sure that no action was specified. if self.request.GET.get('action', None): return HttpResponseBadRequest( 'Need to POST if you want to send data.') NewMessages = self.ThisRoom.message_set.filter( unix_timestamp__gt=self.request_time) if NewMessages: StatusCode = 1 NewMembers = RoomMember.objects.filter(room=self.ThisRoom) NewMembersNames = map(lambda mem: nameurl.GetName(mem.idurl), NewMembers) l = len(NewMessages) if l > JQCHAT_DISPLAY_COUNT: NewMessages = NewMessages[l - JQCHAT_DISPLAY_COUNT:] response = render_to_response('jqchat/chat_payload.json', { 'current_unix_timestamp': time.time(), 'NewMessages': NewMessages, 'StatusCode': StatusCode, 'NewDescription': NewDescription, 'NewMembers': NewMembers, 'NewMembersNames': NewMembersNames, 'CustomPayload': '', 'TimeDisplayFormat': DATE_FORMAT }, context_instance=RequestContext( self.request)) response['Content-Type'] = 'text/plain; charset=utf-8' response['Cache-Control'] = 'no-cache' return response except: e = lg.exc() return HttpResponseBadRequest('EXCEPTION:' + e)