module MnoEnterprise::Concerns::Controllers::Jpi::V1::TeamsController
Public Instance Methods
add_users()
click to toggle source
PUT /mnoe/jpi/v1/teams/:id/add_users
# File lib/mno_enterprise/concerns/controllers/jpi/v1/teams_controller.rb, line 60 def add_users update_members(:add_user) end
create()
click to toggle source
POST /mnoe/jpi/v1/organizations/:organization_id/teams
# File lib/mno_enterprise/concerns/controllers/jpi/v1/teams_controller.rb, line 29 def create authorize! :manage_teams, parent_organization @team = parent_organization.teams.create(team_params) MnoEnterprise::EventLogger.info('team_add', current_user.id, 'Team created', @team) if @team render 'show' end
destroy()
click to toggle source
DELETE /mnoe/jpi/v1/teams/:id
# File lib/mno_enterprise/concerns/controllers/jpi/v1/teams_controller.rb, line 70 def destroy @team = MnoEnterprise::Team.find(params[:id]) authorize! :manage_teams, @team.organization @team.destroy MnoEnterprise::EventLogger.info('team_delete', current_user.id, 'Team deleted', @team) if @team head :no_content end
index()
click to toggle source
remove_users()
click to toggle source
PUT /mnoe/jpi/v1/teams/:id/remove_users
# File lib/mno_enterprise/concerns/controllers/jpi/v1/teams_controller.rb, line 65 def remove_users update_members(:remove_user) end
show()
click to toggle source
GET /mnoe/jpi/v1/teams/:id
# File lib/mno_enterprise/concerns/controllers/jpi/v1/teams_controller.rb, line 23 def show @team = MnoEnterprise::Team.find(params[:id]) authorize! :read, @team.organization end
update()
click to toggle source
PUT /mnoe/jpi/v1/teams/:id
# File lib/mno_enterprise/concerns/controllers/jpi/v1/teams_controller.rb, line 39 def update @team = MnoEnterprise::Team.find(params[:id]) authorize! :manage_teams, @team.organization # Update regular attributes @team.update_attributes(team_params) # # Update permissions if params[:team] && params[:team][:app_instances] list = params[:team][:app_instances].select { |e| e != {} } @team.set_access_to(list) MnoEnterprise::EventLogger.info('team_apps_update', current_user.id, 'Team apps updated', @team, {apps: list.map{|l| l['name']}}) end render 'show' end
Private Instance Methods
team_params()
click to toggle source
# File lib/mno_enterprise/concerns/controllers/jpi/v1/teams_controller.rb, line 103 def team_params params.require(:team).permit(:name) end
update_members(action)
click to toggle source
Update the members of a team Reduce duplication between add and remove
# File lib/mno_enterprise/concerns/controllers/jpi/v1/teams_controller.rb, line 85 def update_members(action) @team = MnoEnterprise::Team.find(params[:id]) authorize! :manage_teams, @team.organization if params[:team] && params[:team][:users] id_list = params[:team][:users].map { |h| h[:id] }.compact users = @team.organization.users.where('id.in' => id_list) users.each { |u| @team.send(action, u) } MnoEnterprise::EventLogger.info('team_update', current_user.id, 'Team composition updated', @team, {action: action.to_s, users: users.map(&:email)}) end @team.reload render 'show' end