def _addEmailUser(event, wavelet, gadgetWrapper, user, request): ''' Adds an email particpant to the wave and updates the gadget to reflect @param event: the event that triggered the changed gadget @param wavelet: the wavelet where the request originated from @param user: the user that made the request @param gadgetWrapper: the object that wraps this gadgets state @param request: the request to process ''' logging.info("Add email user request") email = request.get('params').get("email") or None message = request.get('params').get('message') or "" if email: logging.info("Creating new session for " + email) url = sessionCreation.generateNewUser( wavelet.wave_id, wavelet.wavelet_id, email, pt_raw.RW['READ_WRITE']) deferred.defer( emailInterface.sendFirstNotificationEmail, url, wavelet.wave_id, wavelet.wavelet_id, email, event.modified_by, wavelet.title, message=message) wavelet.add_proxying_participant(utils.getProxyForFromEmail(email)) gadgetWrapper.addEmailParticipant(email) gadgetWrapper.deleteIncomingRequest(user)
def _changePublicSettings(wavelet, gadgetWrapper, user, request): ''' Changes the public settings for the wave and updates the gadget to reflect @param wavelet: the wavelet where the request originated from @param user: the user that made the request @param gadgetWrapper: the object that wraps this gadgets state @param request: the request to process ''' logging.info("Change public settings request") #Extract values from the incoming json isPublic = None isReadOnly = None params = request.get("params", None) if params: isPublic = params.get("isPublic", None) isReadOnly = params.get("isReadOnly", None) if isPublic == None: isPublic = False if isReadOnly == None: isReadOnly = True #Convert values into permissions if isReadOnly: rw_permission = pt_raw.RW['READ'] else: rw_permission = pt_raw.RW['READ_WRITE'] if not isPublic: rw_permission = pt_raw.RW['DELETED'] url = sessionCreation.generateNewUser( wavelet.wave_id, wavelet.wavelet_id, config.PUBLIC_EMAIL, rw_permission) gadgetWrapper.changePublicSettings(isPublic, isReadOnly, url) gadgetWrapper.deleteIncomingRequest(user)
def onAddParticipantsChangedV1(event, wavelet, add_gadget): ''' Deals with the add participants gadget changing, subscribes wave users etc @param event: the event that triggered the gadget state change @param wavelet: the wavelet the gadget lives in @param add_gadget: the add participants gadget retrieved from the wave ''' #Fetch the values from the gadget participants_json = add_gadget.get("EMAIL-PARTICIPANTS", None) if participants_json: participants_json = base64.b64decode(participants_json) else: participants_json = "[]" participants = simplejson.loads(participants_json) new_participant = add_gadget.get("ADD-PARTICIPANT", None) if new_participant: logging.info("Subscribing new e-mail user: "******" not subscribed. E-mail address not valid") return #Only update if the user is new if not new_participant in participants: deferred.defer( emailInterface.sendFirstNotificationEmail, sessionCreation.generateNewUser(wavelet.wave_id, wavelet.wavelet_id, new_participant, pt_raw.RW['READ_WRITE']), wavelet.wave_id, wavelet.wavelet_id, new_participant, event.modified_by, wavelet.title) participants.append(new_participant) wavelet.add_proxying_participant(utils.getProxyForFromEmail(new_participant)) #Update the gadget participants_json = simplejson.dumps(participants) add_gadget.update_element({ "ADD-PARTICIPANT": None, "EMAIL-PARTICIPANTS": base64.b64encode(participants_json)})