Esempio n. 1
0
	def status(self, client, appName, channelName):
		from log.logger import Log
		from commons.session import Session

		master = False
		if self.chanExists(channelName=channelName, appName=appName):   
			channel = self.Channel(channelName, appName)
			if channel and client.unique_key in channel.masters():
				master = True
			key = client.unique_key
			name = client.getName()
			to_send = {"name": name, "key": key, "status": 'offline'}
			if master == False:
				masters = channel.masters()
				for master in masters:
					m = Session().get(master)
					if m is not None:
						Log().add("[+] Client (room.py) : envoie du status de " + name + " vers l'utilisateur : " + m.getName())
						json = Protocol.forgeJSON('status', simplejson.JSONEncoder().encode(to_send), {'channel': channel.name})
						m.addResponse(json)
			else:
				users = channel.users()                
				for user in users:
					u = Session().get(user)
					if u is not None:
						Log().add("[+] Client (room.py) : envoie du status master vers l'utilisateur : " + u.getName())
						json = Protocol.forgeJSON('status', simplejson.JSONEncoder().encode(to_send), {'channel': channel.name})
						u.addResponse(json)
Esempio n. 2
0
	def __sendMessage(self, channelName, appName, sender, to, message):
		"""Fromate le json, et envoie le message a l'utilisateur"""

		from commons.session import Session

		sender = Session().get(sender)
		receiver =  Session().get(to)
		json = Protocol.forgeJSON('message', '["' + sender.getName() + '", "' + message + '"]',
											  {'channel': channelName, 'app': appName})
		if receiver is not None:
			receiver.addResponse(json)
Esempio n. 3
0
	def forward(self, channelName, appName, commande, uid, app):
		"""Return : Envoie une commande a tous les utilisateurs d'une application -> bool """

		from commons.session import Session
		from log.logger import Log

		if self.chanExists(channelName=channelName, appName=appName):
			channel = self.Channel(channelName=channelName, appName=appName)  
			if uid in channel.masters():
				users = channel.users()
				master = Session().get(uid)
				json = Protocol.forgeJSON('forward', '["' + master.getName() + '", "' + commande + '"]',
										  {'channel': channelName, 'app': appName})
			  	if self.filter.RunIn(json) == True:
					channel.history.add(uid, json)
				for u in users:
					user = Session().get(u)
					if user is not None:
						user.addResponse(json)
				if len(users) > 0:
					return True
		return False