Пример #1
0
    def process_change_username(self, message):
        """
		:type message: dict
		"""
        self.logger.info("!! Changing username to %s", message[CONTENT_VAR_NAME])
        new_username = message[CONTENT_VAR_NAME]
        try:
            check_user(new_username)
            online = self.get_online_from_redis()
            if new_username in online:
                self.logger.info("!! This name is already used")
                raise ValidationError("Anonymous already has this name")
            session_key = self.get_cookie(settings.SESSION_COOKIE_NAME)
            session = session_engine.SessionStore(session_key)
            session[SESSION_USER_VAR_NAME] = new_username
            session.save()

            del online[self.sender_name]
            old_name = self.sender_name
            old_channel = self.channel
            self.sender_name = new_username  # change_user_name required new_username in sender_name
            online.update(self.online_self_js_structure)
            message_all = self.change_user_nickname(old_name, online)
            message_me = self.default(new_username, GET_MINE_USERNAME_EVENT)
            # TODO perform ton of checks or emit twice ?
            self.publish(message_me, self.channel)  # to new user channel
            self.publish(message_me, old_channel)  # to old user channel
            self.publish(message_all)
        except ValidationError as e:
            self.safe_write(self.default(str(e.message)))
Пример #2
0
def register(request):
	try:
		rp = request.POST
		(username, password, email, verify_email) = (
			rp.get('username'), rp.get('password'), rp.get('email'), rp.get('mailbox'))
		check_user(username)
		check_password(password)
		check_email(email, verify_email == 'on')
		user = UserProfile(username=username, email=email, sex_str=rp.get('sex'))
		user.set_password(password)
		default_thread, created_default = Room.objects.get_or_create(name=ANONYMOUS_REDIS_ROOM)
		registered_only, created_registered = Room.objects.get_or_create(name=REGISTERED_REDIS_ROOM)
		user.save()
		user.rooms.add(default_thread)
		user.rooms.add(registered_only)
		user.save()
		logger.info('Signed up new user %s, subscribed for channels %s', user, user.rooms)
		# You must call authenticate before you can call login
		auth_user = authenticate(username=username, password=password)
		djangologin(request, auth_user)
		# register,js redirect if message = 'Account created'
		message = settings.VALIDATION_IS_OK
		if verify_email == 'Y':
			send_email_verification(user, request.get_host())
	except ValidationError as e:
		message = e.message
	return HttpResponse(message, content_type='text/plain')
Пример #3
0
def validate_user(request):
	"""
	Validates user during registration
	"""
	try:
		username = request.POST.get('username')
		registration_utils.check_user(username)
		# hardcoded ok check in register.js
		message = settings.VALIDATION_IS_OK
	except ValidationError as e:
		message = e.message
	return HttpResponse(message, content_type='text/plain')
Пример #4
0
	def test_check_user(self):
		self.assertRaises(ValidationError, check_user, "d"*100)
		self.assertRaises(ValidationError, check_user, "asdfs,+")
		check_user("Fine")