Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class ProjectsController < ApplicationController
- before_action :set_project, only: [:show, :edit, :update, :destroy]
- skip_after_action :reset_redirect_after_auth, only: [:update, :new]
- before_filter :authenticate_redirect_user!, except: [:search, :show, :index]
- # GET /projects
- def index
- @projects = Project.all
- end
- # GET /projects/1
- def show
- end
- # GET /projects/new
- def new
- @project = Project.new
- @project.user = current_user
- @project.user.build_bank_account
- end
- # GET /projects/1/edit
- def edit
- @project.user.build_bank_account
- end
- # POST /projects
- def create
- @project = Project.new(project_params)
- if @project.save
- session[:tracker] << { event: 'New project', opts: { user: @project.user.full_name, mail: @project.user.email } }
- redirect_to @project, notice: t('project.created')
- else
- render :new
- end
- end
- # POST /projects/search
- def search
- query = params[:search] || ''
- if query.length >= 2
- @projects = Project.where("name LIKE ?", "%#{query}%").limit(10)
- else
- @projects = Project.all.limit(10)
- end
- render 'index'
- end
- # PATCH/PUT /projects/1
- def update
- if project_params[:user_attributes][:id].to_i != @project.user.id
- flash[:alert] = t('error')
- session[:tracker] << { event: 'Suspicious activity', opts: { where: 'project update' } }
- render 'home/index'
- elsif @project.update(project_params)
- redirect_to @project, notice: t('project.updated')
- else
- render :edit
- end
- end
- # DELETE /projects/1
- def destroy
- @project.destroy
- redirect_to projects_url, notice: t('project.destroyed')
- end
- protected
- def authenticate_redirect_user!
- session[:url_after_auth] = request.fullpath
- authenticate_user!
- end
- private
- # Use callbacks to share common setup or constraints between actions.
- def set_project
- @project = Project.friendly.find(params[:id])
- end
- # Only allow a trusted parameter "white list" through.
- def project_params
- params.require(:project).permit(
- Project.permitted_params,
- rewards_attributes: Reward.permitted_params,
- user_attributes: User.permitted_params
- )
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement