def new(self): '''Display create group form''' username = turbogears.identity.current.user_name person = People.by_username(username) if not can_create_group(person): turbogears.flash(_('Only FAS administrators can create groups.')) turbogears.redirect('/') return dict()
def create(self, name, display_name, owner, group_type, invite_only=0, needs_sponsor=0, user_can_remove=1, prerequisite='', joinmsg='', apply_rules='None'): '''Create a group''' groupname = name person = People.by_username(turbogears.identity.current.user_name) person_owner = People.by_username(owner) if not can_create_group(person): turbogears.flash(_('Only FAS administrators can create groups.')) turbogears.redirect('/') try: owner = People.by_username(owner) group = Groups() group.name = name group.display_name = display_name group.owner_id = person_owner.id group.group_type = group_type group.needs_sponsor = bool(needs_sponsor) if invite_only: group.invite_only = True else: group.invite_only = False group.user_can_remove = bool(user_can_remove) if prerequisite: prerequisite = Groups.by_name(prerequisite) group.prerequisite = prerequisite group.joinmsg = joinmsg group.apply_rules = apply_rules # Log group creation Log(author_id=person.id, description='%s created group %s' % (person.username, group.name)) session.flush() except TypeError: turbogears.flash(_("The group: '%s' could not be created.") % groupname) return dict() else: try: owner.apply(group, person) # Apply... session.flush() owner.sponsor(group, person) owner.upgrade(group, person) owner.upgrade(group, person) except KeyError: turbogears.flash(_("The group: '%(group)s' has been created, but '%(user)s' could not be added as a group administrator.") % {'group': group.name, 'user': owner.username}) else: fas.fedmsgshim.send_message(topic="group.create", msg={ 'agent': { 'username': person.username, }, 'group': { 'name': group.name, }, }) turbogears.flash(_("The group: '%s' has been created.") % group.name) turbogears.redirect('/group/view/%s' % group.name) return dict()
def create(self, name, display_name, owner, group_type, invite_only=0, needs_sponsor=0, user_can_remove=1, prerequisite='', joinmsg='', apply_rules='None'): '''Create a group''' groupname = name person = People.by_username(turbogears.identity.current.user_name) person_owner = People.by_username(owner) if not can_create_group(person): turbogears.flash(_('Only FAS administrators can create groups.')) turbogears.redirect('/') try: owner = People.by_username(owner) group = Groups() group.name = name group.display_name = display_name group.owner_id = person_owner.id group.group_type = group_type group.needs_sponsor = bool(needs_sponsor) if invite_only: group.invite_only = True else: group.invite_only = False group.user_can_remove = bool(user_can_remove) if prerequisite: prerequisite = Groups.by_name(prerequisite) group.prerequisite = prerequisite group.joinmsg = joinmsg group.apply_rules = apply_rules # Log group creation Log(author_id=person.id, description='%s created group %s' % (person.username, group.name)) session.flush() except TypeError: turbogears.flash(_("The group: '%s' could not be created.") % groupname) return dict() else: try: owner.apply(group, person) # Apply... session.flush() owner.sponsor(group, person) owner.upgrade(group, person) owner.upgrade(group, person) except KeyError: turbogears.flash(_("The group: '%(group)s' has been created, but '%(user)s' could not be added as a group administrator.") % {'group': group.name, 'user': owner.username}) else: fas.fedmsgshim.send_message(topic="group.create", msg={ 'agent': person.username, 'group': group.name, }) turbogears.flash(_("The group: '%s' has been created.") % group.name) turbogears.redirect('/group/view/%s' % group.name) return dict()