Sha256: c0720e204442c14423bf7abc70946bfda0784848980d54800cc6928cd0fbce82

Contents?: true

Size: 977 Bytes

Versions: 51

Compression:

Stored size: 977 Bytes

Contents

module Api
  class RolesController < BaseController
    include WithUserParams

    before_action :set_slug!
    before_action :set_course!
    before_action :set_user!, except: :create
    before_action :authorize_janitor!

    def create
      @user = User.create_if_necessary(user_params)
      @user.attach! role, @course
      render json: @user
    end

    def attach
      @user.attach! role, @course
      head :ok
    end

    def detach
      @user.detach! role, @course
      head :ok
    end

    private

    def role
      raise 'Not Implemented'
    end

    def user_params
      params.require(role).permit(*permissible_params)
    end

    def permissible_params
      super + [:image_url, :email, :uid]
    end

    def set_course!
      @course = Course.find_by!(slug: @slug)
    end

    def set_user!
      @user = User.find_by!(uid: params[:uid])
    end

    def set_slug!
      @slug = Mumukit::Auth::Slug.join_s params.to_unsafe_h
    end
  end

end

Version data entries

51 entries across 51 versions & 1 rubygems

Version Path
mumuki-laboratory-8.6.1 app/controllers/api/roles_controller.rb
mumuki-laboratory-8.6.0 app/controllers/api/roles_controller.rb
mumuki-laboratory-8.5.0 app/controllers/api/roles_controller.rb
mumuki-laboratory-8.4.0 app/controllers/api/roles_controller.rb
mumuki-laboratory-8.3.0 app/controllers/api/roles_controller.rb
mumuki-laboratory-8.2.1 app/controllers/api/roles_controller.rb
mumuki-laboratory-8.2.0 app/controllers/api/roles_controller.rb
mumuki-laboratory-8.1.3 app/controllers/api/roles_controller.rb
mumuki-laboratory-8.1.2 app/controllers/api/roles_controller.rb
mumuki-laboratory-8.1.1 app/controllers/api/roles_controller.rb
mumuki-laboratory-8.1.0 app/controllers/api/roles_controller.rb
mumuki-laboratory-7.12.3 app/controllers/api/roles_controller.rb
mumuki-laboratory-8.0.0 app/controllers/api/roles_controller.rb
mumuki-laboratory-7.12.1 app/controllers/api/roles_controller.rb
mumuki-laboratory-7.12.0 app/controllers/api/roles_controller.rb
mumuki-laboratory-7.11.1 app/controllers/api/roles_controller.rb
mumuki-laboratory-7.11.0 app/controllers/api/roles_controller.rb
mumuki-laboratory-7.10.5 app/controllers/api/roles_controller.rb
mumuki-laboratory-7.10.4 app/controllers/api/roles_controller.rb
mumuki-laboratory-7.10.3 app/controllers/api/roles_controller.rb