Ejemplo n.º 1
0
 def handle(self):
     LOG.debug("Handling accept invitation to join group")
     with models.transaction() as session:
         gr = models.GroupRole.get_by_description('Member')
         gm = models.GroupMember(
             user_id=self.notification.user_to_id,
             group_id=self.notification.group_id,
             role_id=gr.id)
         session.add(gm)
Ejemplo n.º 2
0
 def handle(self):
     LOG.debug("Handling acknowledge group join request")
     with models.transaction() as session:
         gr = models.GroupRole.get_by_description('Member')
         gm = models.GroupMember(
             user_id=self.notification.user_from_id,
             group_id=self.notification.group_id,
             role_id=gr.id)
         session.add(gm)
Ejemplo n.º 3
0
 def handle(self):
     LOG.debug("Handling accept group organization add request")
     with models.transaction() as session:
         og = models.OrganizationGroup(
             organization_id=self.notification.organization_id,
             group_id=self.notification.group_id)
         session.add(og)
         LOG.debug("Making org owner a member of the group")
         existing_gm = models.GroupMember.get_by_user_id(
             self.notification.user_to_id)
         if not existing_gm:
             gr = models.GroupRole.get_by_description('Member')
             gm = models.GroupMember(
                 user_id=self.notification.user_to_id,
                 group_id=self.notification.group_id,
                 role_id=gr.id)
             session.add(gm)
Ejemplo n.º 4
0
 def creation_workflow(self, form, org):
     with models.transaction() as session:
         if form.user_is_leader.data:
             leader = current_user
         else:
             address = models.User.get_email_from_full_name_and_email(
                 form.owner.data)
             leader = models.User.get_by_email(address)
         group_leaders = org.group_leaders
         if (leader not in group_leaders) and not org.is_in_trial() and (
                 org.available_licenses < 1):
             return self.need_leaders(org.id)
         new_group = models.Group(
             name=form.name.data,
             description=form.description.data,
             member_limit=form.member_limit.data,
             privacy_setting_id=form.privacy_settings.data,
             anonymous=form.anonymous.data,
             gender_focus=form.gender_focus.data)
         if form.age_range.data:
             new_group.age_range_id = form.age_range.data.id
         if form.group_category.data:
             new_group.group_type_id = form.group_category.data.id
         session.add(new_group)
     with models.transaction() as session:
         organization_group = models.OrganizationGroup(
             organization_id=form.org.data, group_id=new_group.id)
         session.add(organization_group)
         new_group_meet_times = []
         for group_meet_time_type in form.meet_times.data:
             new_group_meet_time = models.GroupMeetTime(
                 group_id=new_group.id,
                 meet_time_type_id=group_meet_time_type.id)
             new_group_meet_times.append(new_group_meet_time)
         if new_group_meet_times:
             session.add_all(new_group_meet_times)
         group_role = session.query(models.GroupRole).filter(
             models.GroupRole.description == 'Group Leader').first()
         group_member = models.GroupMember(group_id=new_group.id,
                                           user_id=leader.id,
                                           role_id=group_role.id)
         form.owner.default = current_user.id
         session.add(group_member)
     flask.flash("Group {} created successfully".format(form.name.data))
     return flask.redirect(flask.url_for('.show', group_id=new_group.id))
Ejemplo n.º 5
0
 def handle_invite(content, user):
     group_id = content.get('group_id')
     group_role_id = content.get('group_role_id')
     error_message = (
         "There was an error associating to your invited group."
         " Please have person re-add you.")
     if group_id:
         with models.transaction() as session:
             try:
                 gm = models.GroupMember(group_id=group_id,
                                         user_id=user.id,
                                         role_id=group_role_id)
                 session.add(gm)
             except Exception:
                 LOG.exception("Error adding invited user to group")
                 models.Session.rollback()
                 flask.flash(error_message, 'danger')
     else:
         flask.flash(error_message, 'danger')
     return flask.redirect(flask.url_for("login"))