12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- class LecturesController < ApplicationController
- before_action :set_lecture, only: %i[show edit update destroy]
- before_action :check_can_edit, only: %i[edit update]
- before_action :check_can_create, only: %i[create]
- def show; end
- def new
- @lecture = Lecture.new
- end
- def edit; end
- def create
- @lecture = Lecture.new(lecture_params)
- if @lecture.save
- flash[:success] = 'Created lecture'
- redirect_to @lecture
- else
- render :new
- end
- end
- def update
- if @lecture.update(lecture_params)
- flash[:success] = 'Updated lecture'
- redirect_to @lecture
- else
- render :edit
- end
- end
- private
- # Use callbacks to share common setup or constraints between actions.
- def set_lecture
- @lecture = Lecture.find(params[:id])
- end
- def lecture_params
- allowed = [:description]
- allowed += %i[course_id starts_at ends_at location] if helpers.can_edit_full?
- params.require(:lecture).permit(*allowed)
- end
- def check_can_create
- redirect_to root_url unless helpers.can_edit_full?
- end
- def check_can_edit
- redirect_to root_url unless helpers.can_edit_description?
- end
- end
|