128
# userservice/get_group_membership
130
# Returns two lists. One of people in the group and one of people not in the
131
# group (but enroled in the offering)
128
135
# userservice/assign_to_group
129
136
# Required cap: CAP_MANAGEGROUPS
130
137
# Assigns a user to a project group
131
# Required: loginid, groupid
138
# Required: login, groupid
637
644
if projectsetid is None or groupnm is None:
638
645
req.throw_error(req.HTTP_BAD_REQUEST,
639
646
"Required: projectsetid, groupnm")
640
projectsetid = int(projectsetid)
648
projectsetid = int(projectsetid)
650
req.throw_error(req.HTTP_BAD_REQUEST,
651
"projectsetid must be an int")
641
652
# Get optional fields
642
653
nick = fields.getfirst('nick')
705
716
req.content_type = "text/plain"
706
717
req.write(response)
719
def handle_get_group_membership(req, fields):
720
""" Required cap: None
721
Returns two lists. One of people in the group and one of people not in the
722
group (but enroled in the offering)
726
# Get required fields
727
groupid = fields.getfirst('groupid')
728
offeringid = fields.getfirst('offeringid')
729
if groupid is None or offeringid is None:
730
req.throw_error(req.HTTP_BAD_REQUEST,
731
"Required: groupid, offeringid")
733
groupid = int(groupid)
735
req.throw_error(req.HTTP_BAD_REQUEST,
736
"groupid must be an int")
738
offeringid = int(offeringid)
740
req.throw_error(req.HTTP_BAD_REQUEST,
741
"offeringid must be an int")
745
offeringmembers = db.get_offering_members(offeringid)
746
groupmembers = db.get_projectgroup_members(groupid)
750
# Make sure we don't include members in both lists
751
for member in groupmembers:
752
if member in offeringmembers:
753
offeringmembers.remove(member)
755
response = cjson.encode(
756
{'groupmembers': groupmembers, 'available': offeringmembers})
758
req.content_type = "text/plain"
708
761
def handle_assign_group(req, fields):
709
762
""" Required cap: CAP_MANAGEGROUPS
710
763
Assigns a user to a project group
771
824
"get_enrolments": handle_get_enrolments,
772
825
"get_active_offerings": handle_get_active_offerings,
773
826
"get_project_groups": handle_get_project_groups,
827
"get_group_membership": handle_get_group_membership,
774
828
"create_project_set": handle_create_project_set,
775
829
"create_project": handle_create_project,
776
830
"create_group": handle_create_group,