def handle_register(self, register): self.registered_usernames_lock.acquire() if register.username not in self.registered_usernames: self.registered_usernames.add(register.username) user_id = self.client_id self.registered_usernames_lock.release() if self.encryption: register.symmetric_key = RSA._rsa_decrypt_and_decode(self.rsa_key, register.symmetric_key) self.clients_lock.acquire() self.clients[user_id] = register self.client_id += 1 self.clients_lock.release() self.__ontology_manager.add_individual('User', register.username) self.__ontology_manager.save() self.logger.debug('Username %s registered and assigned ID %d' \ % (register.username, user_id)) if self.encryption: self.clients_lock.acquire() ret = RSA.rsa_encrypt_client(self.clients[user_id], Serialization.serialize_registeruserresponse(user_id)) self.clients_lock.release() return ret return base64.b64encode(Serialization.serialize_registeruserresponse(user_id)) self.logger.error('Username %s already registered' % register.username) return