示例#1
0
    def update_membership(self, group):
        if hasattr(self, 'form_result'):
            user = User.get_byid(self.form_result.get('user_id', None))
            membership = GroupMember.get(user, group)
            if membership is not None:
                role = self.form_result.get('role', 'member')
                if role == 'not-member':
                    meta.Session.delete(membership)
                elif role in ['member', 'administrator']:
                    role = GroupMembershipType.get(role)
                    membership.role = role
                    h.flash(_("The status of the user %(fullname)s was updated.") % {'fullname': user.fullname})
                else:
                    h.flash(_("Problem updating the status of the user."))

                meta.Session.flush()
                meta.Session.expire(group)
                if group.administrators == 0:
                    h.flash(_('The group must have at least one administrator!'))
                    meta.Session.rollback()
                else:
                    meta.Session.commit()
            else:
                h.flash(_("Problem updating the status of the user. Cannot find such user."))
        redirect(url(controller="group", action="members", id=group.group_id))
示例#2
0
 def leave(self, group):
     membership = GroupMember.get(c.user, group)
     if membership is not None:
         meta.Session.delete(membership)
         meta.Session.flush()
         meta.Session.expire(group)
     if len(group.administrators) < 1:
         h.flash(_('The group must have at least one administrator!'))
         meta.Session.rollback()
         redirect(request.referrer)
     meta.Session.commit()
     redirect(group.url())