Esempio n. 1
0
    def set_username(self, session_key):
        """
		Case registered: Fetch userName and its channels from database. returns them
		Case anonymous: generates a new name and saves it to session. returns default channel
		:return: channels user should subscribe
		"""
        session = session_engine.SessionStore(session_key)
        try:
            self.user_id = int(session["_auth_user_id"])
            user_db = self.do_db(UserProfile.objects.get, id=self.user_id)  # everything but 0 is a registered user
            self.sender_name = user_db.username
            self.sex = user_db.sex_str
            rooms = user_db.rooms.all()  # do_db is used already
            room_names = {}
            channels = [self.channel]
            for room in rooms:
                room_names[room.id] = room.name
                channels.append(REDIS_ROOM_CHANNEL_PREFIX % room.id)
            rooms_message = self.default(room_names, ROOMS_EVENT)
            self.logger.info("!! User %s subscribes for %s", self.sender_name, room_names)
        except (KeyError, UserProfile.DoesNotExist):
            # Anonymous
            self.sender_name = session.get(SESSION_USER_VAR_NAME)
            if self.sender_name is None:
                self.sender_name = id_generator(8)
                session[SESSION_USER_VAR_NAME] = self.sender_name
                session.save()
                self.logger.info("!! A new user log in, created username %s", self.sender_name)
            else:
                self.logger.info("!! Anonymous with name %s has logged", self.sender_name)
            channels = [ANONYMOUS_REDIS_CHANNEL, self.channel]
            rooms_message = self.default(ANONYMOUS_ROOM_NAMES, ROOMS_EVENT)
        finally:
            self.safe_write(rooms_message)
            return channels
Esempio n. 2
0
def send_email_verification(user, site_address):
	if user.email is not None:
		user.verify_code = id_generator()
		user.save()
		code = '/confirm_email?code=' + user.verify_code
		text = 'Hi %s, you have registered on chat. To complete your registration click on the url bellow: http://%s%s' %\
			(user.username, site_address, code)
		mail_thread = Thread(
			target=send_mail,
			args=("Confirm chat registration", text, site_address, [user.email]))
		mail_thread.start()