Sha256: ff7ef2de6611f5b412d48e03a2754bef5750f657eebaa7d5e67db7eded6aaacb

Contents?: true

Size: 1.96 KB

Versions: 2

Compression:

Stored size: 1.96 KB

Contents

require_dependency "educode_sales/application_controller"

module EducodeSales
  class RolesController < ApplicationController
    # before_action :authenticate_admin

    def index
      respond_to do |format|
        format.html do
        end
        format.json do
          @roles = Role.all
        end
      end
    end

    def create
      role = Role.new(name: params[:name])
      role.role_areas.build([{ clazz: 'Business' }, { clazz: 'SalePlan' }, { clazz: 'Teacher' }, { clazz: 'Operation' }])
      if role.save
        render_success
      else
        render_failure role
      end
    end

    def new
      render layout: false
    end

    def edit
      role = Role.find(params[:id])
      @permissions = role.permissions.pluck(:id)
      @areas = role.role_areas.map { |d| "#{d.clazz}-#{d.level}" }
      render layout: false
    end

    def update_role
      role = Role.find(params[:id])
      if role.update(name: params[:name])
        render_success
      else
        render_failure role
      end
    end



    def update
      permissions = []
      role = Role.find(params[:id])
      params[:permission].each do |d|
        d[1].each do |c|
          permissions << Permission.find_by(subject: d[0], action: c[1])
        end
      end
      role.permissions = permissions
      role.save
      render json: { success: true }
    end

    def destroy
      role = Role.find(params[:id])
      role.destroy
      render_success
    rescue ActiveRecord::DeleteRestrictionError => e
      render_failure '该角色已有用户存在,不能再删除'
    end

    def view
      role = Role.find(params[:id])
      role.role_areas.find_by(clazz: 'Business').update(level: params[:business])
      role.role_areas.find_by(clazz: 'Operation').update(level: params[:operation])
      role.role_areas.find_by(clazz: 'SalePlan').update(level: params[:sale_plan])
      role.role_areas.find_by(clazz: 'Teacher').update(level: params[:teacher])
      render_success
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
educode_sales-0.1.4 app/controllers/educode_sales/roles_controller.rb
educode_sales-0.1.3 app/controllers/educode_sales/roles_controller.rb