def addUserToHub(hubName, owner, newUser): keys = db.HubInfo.keysWhichMatch(db.HubInfo, owner) hubInfo = db.HubInfo(owner, hubName).get() if 'users' in hubInfo.keys(): hubInfo['users'].append(newUser) else: hubInfo['users'].append(newUser) hubInfo['users'] = list(set(hubInfo['users'])) db.HubInfo(owner, hubName).put(hubInfo) # create permissions database object for a user db.Permissions(owner, hubName, newUser).put(["", "", "", "", ""])
def myHubs(request): userid = request.authenticated_userid everyKey = db.HubInfo.keysWhichMatch(db.HubInfo) hubInfos = Hubs.getHubInfos(everyKey, userid) labels = {} usersdict = {} permissions = {} for hubName in hubInfos: currHubInfo = hubInfos[hubName] owner = currHubInfo['owner'] usersdict[hubName] = currHubInfo[ 'users'] if 'users' in currHubInfo.keys() else [] everyLabelKey = db.Labels.keysWhichMatch(owner, hubName) num_labels = 0 for key in everyLabelKey: if key[0] == userid or userid in hubInfos[key[1]]['users']: num_labels += db.Labels(*key).get().shape[0] labels[hubName] = num_labels # get each co users permissions for couser in usersdict[hubName]: permissions[(hubName, couser)] = db.Permissions(owner, hubName, couser).get() return { "user": userid, "hubInfos": hubInfos, "usersdict": usersdict, "permissions": permissions, "labels": labels }
def adjustPermsPOST(request): userid = request.authenticated_userid query = request.matchdict user = query['user'] hub = query['hub'] couser = query['couser'] chkpublic = "Can change to public" if "chkpublic" in request.params.keys( ) else "" chkhub = "Can adjust hub" if "chkhub" in request.params.keys() else "" chklabels = "Can adjust labels" if "chklabels" in request.params.keys( ) else "" chktracks = "Can change tracks" if "chktracks" in request.params.keys( ) else "" chkmoderator = "Is moderator" if "chkmoderator" in request.params.keys( ) else "" db.Permissions(user, hub, couser).put( [chkpublic, chkhub, chklabels, chktracks, chkmoderator]) url = request.route_url('myHubs') return HTTPFound(location=url)