app/controllers/app_admin/userpermissions_controller.rb

Summary

Maintainability
A
1 hr
Test Coverage
class AppAdmin::UserpermissionsController < AppAdmin::BaseController

  def new
    @userpermission = Userpermission.new
    @media_set = MediaSet.find(params[:media_set_id])
  end

  def create
    media_set = MediaSet.find(params[:media_resource_id])
    user = User.find(params[:user_id])
    PermissionMaker.new(media_set, user, userpermission_params).call

    redirect_to app_admin_media_set_url(media_set), flash: {
      success: 'An user permission has been created.'
    }
  rescue => e
    redirect_to new_app_admin_userpermission_url(media_set_id: params[:media_resource_id]),
                flash: { error: e.to_s }
  end

  private

  def userpermission_params
    permissions = [ :view, :download, :edit, :manage ]
    params.permit(userpermission: permissions,
                  children_media_entries: permissions,
                  children_media_sets: permissions
                 )
  end
end