PageRenderTime 1228ms CodeModel.GetById 0ms RepoModel.GetById 1ms app.codeStats 0ms

/app/controllers/faculties/teachers_controller.rb

https://gitlab.com/cd2/developingexperts
Ruby | 71 lines | 57 code | 14 blank | 0 comment | 6 complexity | 657569e6e81dabed05157d4e90b5ae8b MD5 | raw file
  1. class Faculties::TeachersController < FacultyController
  2. before_action :verify_administrator, except: [:show, :edit, :update]
  3. before_action :set_teacher, only: [:show, :update, :edit, :destroy]
  4. before_action :verify_self, only: [:show, :edit, :update]
  5. before_action :require_valid_user, only: [:edit, :update]
  6. layout 'teacher_application'
  7. def index
  8. @q = @school.faculty_members.ransack(params[:q])
  9. @teachers = @q.result(distinct: true)
  10. end
  11. def show
  12. end
  13. def new
  14. @teacher = @school.faculty_members.build
  15. end
  16. def create
  17. @teacher = @school.faculty_members.build(teacher_params)
  18. if @teacher.save
  19. flash[:notice] = 'Teacher created'
  20. @school.notify("#{view_context.link_to(@teacher.name, faculty_teacher_path(@teacher))} has been added as a new #{view_context.link_to('teacher', faculty_teachers_path)}")
  21. redirect_to faculty_teachers_path
  22. else
  23. render :new
  24. end
  25. end
  26. def edit
  27. end
  28. def update
  29. if @teacher.update(teacher_params)
  30. flash[:notice] = 'Teacher update'
  31. @school.notify("#{view_context.link_to(@teacher.name, faculty_teacher_path(@teacher))} has been updated")
  32. redirect_to faculty_teachers_path
  33. else
  34. render :edit
  35. end
  36. end
  37. def destroy
  38. @teacher.destroy
  39. redirect_to faculty_teachers_path
  40. end
  41. private
  42. def set_teacher
  43. @teacher = User.friendly.find(params[:id])
  44. end
  45. def teacher_params
  46. params.require(:user_faculty).permit(:name, :email, :gender, :working_days, :password, :password_confirmation)
  47. end
  48. def verify_administrator
  49. redirect_to faculty_root_path unless signed_in_as_administrator?
  50. end
  51. def verify_self
  52. redirect_to faculty_root_path unless @teacher == current_user || signed_in_as_administrator?
  53. end
  54. def require_valid_user
  55. redirect_to faculty_root_path unless @teacher.id == current_user.id || signed_in_as_administrator?
  56. end
  57. end