Example #1
0
def _updateMembers(members, user, book, lock, address):
	lock.acquire()
	ids = [id for id in members if id not in book.members]
	freezeCount = 0
	while ids:
		id = ids.pop(0)
		newcomer = User(**members[id])
		if newcomer.approverID in book.members and User.isValidInvitation(book.members[newcomer.approverID], newcomer, book.getID()):
			book.members[id] = newcomer
			book.versions[id] = 0
			freezeCount = 0
		else:
			freezeCount += 1
			ids.append(id)
			if freezeCount >= len(ids):
				break
	lock.release()
		
	lock.acquire()
	myMembers = dict(book.members)
	lock.release()
	for user in myMembers:
		if user not in members:
			http_client = tornado.httpclient.HTTPClient()
			_body = 'userName='******'&userPubKey=' + escape.url_escape(user.pubKey)
			_body += '&host=' + escape.url_escape(user.host)
			_body += '&port=' + escape.url_escape(str(user.port))
			_body += '&invitation=' + escape.url_escape(user.invitation if user.invitation is not None else ' ')
			_body += '&approverID=' + escape.url_escape(user.approverID if user.approverID is not None else ' ')
			_body += '&bookID=' + escape.url_escape(book.getID())
			_body += '&password='******'/newmembers', method = 'POST', body = _body)
			break
Example #2
0
	def isMember(self, user):
		if user.ID() in self.members:
			return True
		if user.approverID is not None and user.approverID in self.members:
			# a newcomer but has not yet been appended to members dictionary
			return User.isValidInvitation(self.members[user.approverID], user, self.getID())
		return False