add sis user id support to group memberships API
fixes gh-695 test plan: * enroll a user with an SIS ID in a group * you should be able to use the API to do DELETE /api/v1/groups/<group_id>/users/sis_user_id:<sis id> (assuming proper permissions) Change-Id: Idf07a28eabc53fbe604efac8f96b56ed8120ff57 Reviewed-on: https://gerrit.instructure.com/63681 Tested-by: Jenkins Reviewed-by: Rob Orton <rob@instructure.com> QA-Review: August Thornton <august@instructure.com> Product-Review: Cody Cutrer <cody@instructure.com>
This commit is contained in:
parent
92421e6cf8
commit
72d8de6429
|
@ -225,11 +225,12 @@ class GroupMembershipsController < ApplicationController
|
|||
|
||||
def find_membership
|
||||
if (params[:membership_id] && params[:membership_id] == 'self') || (params[:user_id] && params[:user_id] == 'self')
|
||||
@membership = @group.group_memberships.where(:user_id => @current_user).first || not_found
|
||||
@membership = @group.group_memberships.where(:user_id => @current_user).first!
|
||||
elsif params[:membership_id]
|
||||
@membership = @group.group_memberships.find(params[:membership_id])
|
||||
else
|
||||
@membership = @group.group_memberships.where(:user_id => params[:user_id]).first || not_found
|
||||
user_id = Api.map_ids([params[:user_id]], @group.users, @domain_root_account, @current_user).first
|
||||
@membership = @group.group_memberships.where(user_id: user_id).first!
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -678,6 +678,14 @@ describe "Groups API", type: :request do
|
|||
expect(@membership.workflow_state).to eq "deleted"
|
||||
end
|
||||
|
||||
it "should allow leaving a group using sis id using users/:user_id endpoint" do
|
||||
@user = @member
|
||||
@member.pseudonyms.first.update_attribute(:sis_user_id, 'my_sis_id')
|
||||
api_call(:delete, "#{@alternate_memberships_path}/sis_user_id:my_sis_id", @memberships_path_options.merge(:group_id => @community.to_param, :user_id => 'sis_user_id:my_sis_id', :action => "destroy"))
|
||||
@membership = GroupMembership.where(:user_id => @user, :group_id => @community).first
|
||||
expect(@membership.workflow_state).to eq "deleted"
|
||||
end
|
||||
|
||||
it "should allow a moderator to invite people to a group" do
|
||||
@user = @moderator
|
||||
invitees = { :invitees => ["leonard@example.com", "sheldon@example.com"] }
|
||||
|
|
Loading…
Reference in New Issue