def save(self, groupname, display_name, owner, group_type, needs_sponsor=0, user_can_remove=1, prerequisite='', url='', mailing_list='', mailing_list_url='', invite_only=0, irc_channel='', irc_network='', joinmsg='', apply_rules="None"): '''Edit a group''' username = turbogears.identity.current.user_name person = People.by_username(username) group = Groups.by_name(groupname) if not can_edit_group(person, group): turbogears.flash(_("You cannot edit '%s'.") % group.name) turbogears.redirect('/group/view/%s' % group.name) else: try: owner = People.by_username(owner) group.display_name = display_name group.owner = owner group.group_type = group_type group.needs_sponsor = bool(needs_sponsor) group.user_can_remove = bool(user_can_remove) if prerequisite: prerequisite = Groups.by_name(prerequisite) group.prerequisite = prerequisite else: group.prerequisite = None group.url = url group.mailing_list = mailing_list group.mailing_list_url = mailing_list_url group.invite_only = invite_only group.irc_channel = irc_channel group.irc_network = irc_network group.joinmsg = joinmsg group.apply_rules = apply_rules # Log here session.flush() except: turbogears.flash(_('The group details could not be saved.')) else: Log(author_id=person.id, description='%s edited group %s' % (person.username, group.name)) turbogears.flash(_('The group details have been saved.')) turbogears.redirect('/group/view/%s' % group.name) return dict(group=group)
def save(self, groupname, display_name, owner, group_type, needs_sponsor=0, user_can_remove=1, prerequisite='', url='', mailing_list='', mailing_list_url='', invite_only=0, irc_channel='', irc_network='', joinmsg='', apply_rules="None"): '''Edit a group''' username = turbogears.identity.current.user_name person = People.by_username(username) group = Groups.by_name(groupname) changed = [] #TODO: check any mandatory fields if not group_type: turbogears.flash(_("Group type cannot by empty!")) turbogears.redirect('/group/edit/%s' % group.name) if not can_edit_group(person, group): turbogears.flash(_("You cannot edit '%s'.") % group.name) turbogears.redirect('/group/view/%s' % group.name) else: owner = People.by_username(owner) if prerequisite: prerequisite = Groups.by_name(prerequisite) try: for field, _validator in GroupSave().fields.items(): if field in ['groupname']: continue if getattr(group, field) != locals()[field]: setattr(group, field, locals()[field]) changed.append(field) session.flush() except: turbogears.flash(_('The group details could not be saved.')) else: Log(author_id=person.id, description='%s edited group %s' % (person.username, group.name)) fas.fedmsgshim.send_message(topic="group.update", msg={ 'agent': person.username, 'group': group.name, 'fields': changed, }) turbogears.flash(_('The group details have been saved.')) turbogears.redirect('/group/view/%s' % group.name) return dict(group=group)
def save(self, groupname, display_name, owner, group_type, needs_sponsor=0, user_can_remove=1, prerequisite='', url='', mailing_list='', mailing_list_url='', invite_only=0, irc_channel='', irc_network='', joinmsg='', apply_rules="None"): '''Edit a group''' username = turbogears.identity.current.user_name person = People.by_username(username) group = Groups.by_name(groupname) if not can_edit_group(person, group): turbogears.flash(_("You cannot edit '%s'.") % group.name) turbogears.redirect('/group/view/%s' % group.name) else: try: owner = People.by_username(owner) group.display_name = display_name group.owner = owner group.group_type = group_type group.needs_sponsor = bool(needs_sponsor) group.user_can_remove = bool(user_can_remove) if prerequisite: prerequisite = Groups.by_name(prerequisite) group.prerequisite = prerequisite else: group.prerequisite = None group.url = url group.mailing_list = mailing_list group.mailing_list_url = mailing_list_url if invite_only: group.invite_only = True else: group.invite_only = False group.irc_channel = irc_channel group.irc_network = irc_network group.joinmsg = joinmsg group.apply_rules = apply_rules # Log here session.flush() except: turbogears.flash(_('The group details could not be saved.')) else: Log(author_id=person.id, description='%s edited group %s' % (person.username, group.name)) turbogears.flash(_('The group details have been saved.')) turbogears.redirect('/group/view/%s' % group.name) return dict(group=group)