def inviteUser(self, aUser, otherUser): from server.models.permission import Permission from server.models.message import Message Permission.create(aUser.id, self.id, otherUser.id, 0) json = { "fromId": aUser.id, "toId": otherUser.id, "title": "%s invited you to join the group %s!" % (aUser.userName, self.longName), "text": "%s invited you to join the group %s!" % (aUser.userName, self.longName), "meta": "invite", "content": {"type": "group", "_id": self.id}, } Message.create(**json)
def inviteUser(self, aUser, otherUser): from server.models.permission import Permission from server.models.message import Message Permission.create(aUser.id, self.id, otherUser.id, 0) json = { "fromId": aUser.id, "toId": otherUser.id, "title": "%s invited you to join the group %s!" % (aUser.userName, self.longName), "text": "%s invited you to join the group %s!" % (aUser.userName, self.longName), "meta": "invite", "content": { "type": "group", "_id": self.id } } Message.create(**json)
def create(cls, groupJson): from server.models.permission import Permission from server.models.ssuser import SSUser userId = groupJson["createdBy"] # create the group metadata newGroup = Group(**utils.clean(groupJson)) newGroup.source.server = core.serverName() newGroup.source.database = Group.db(newGroup.id) # save the group metadata to the master db newGroup.store(core.connect()) # create the root permission for this group Permission.create(userId, newGroup.id, userId, level=4) # create the group db server = core.sharedServer() server.create(Group.db(newGroup.id)) # copy the group metadata to the db newGroup.copyTo(Group.db(newGroup.id)) return newGroup
def testPublishToGroupAndUser(self): json = shiftJson() json["createdBy"] = self.fakemary.id newShift = Shift.create(json) json = groupJson() json["createdBy"] = self.fakemary.id newGroup = Group.create(json) newPerm = Permission.create("shiftspace", newGroup.id, self.fakejohn.id, level=1) publishData = { "dbs": [Group.db(newGroup.id), SSUser.db(self.fakebob.id)] } newShift.publish(publishData) # should exist in subscriber's feed db = core.connect("shiftspace/shared") theShift = Shift.load(db, newShift.id) self.assertEqual(theShift.summary, newShift.summary) newGroup.delete() # should exist in shiftspace/shared # TODO: inbox if user is peer - David 11/18/09 theShift = Shift.load(core.connect("shiftspace/shared"), newShift.id) self.assertEqual(theShift.summary, newShift.summary)
def testPublishToGroup(self): json = shiftJson() json["createdBy"] = self.fakemary.id newShift = Shift.create(json) json = groupJson() json["createdBy"] = self.fakemary.id newGroup = Group.create(json) # make sure fakemary owns the group newPerm = Permission.readByUserAndGroup(self.fakemary.id, newGroup.id) self.assertTrue(newPerm.level == 4) # create read permission for fakejohn newPerm = Permission.create("shiftspace", newGroup.id, self.fakejohn.id, level=1) fakejohn = SSUser.read(self.fakejohn.id) self.assertTrue(Group.db(newGroup.id) in fakejohn.readable()) publishData = { "dbs": [Group.db(newGroup.id)] } newShift.publish(publishData) # should exists in shiftspace/shared db = core.connect("shiftspace/shared") theShift = Shift.load(db, newShift.id) self.assertEqual(theShift.summary, newShift.summary) newGroup.delete()