Показать таблицу разрешений пользователя - PullRequest
0 голосов
/ 07 марта 2019

я внедряю права администратора для пользователей. После их редактирования я хотел бы показать таблицу с разрешениями пользователя для каждого действия. Как на следующей картинке: enter image description here

Но проблема в том, что отображаются только разрешения текущего пользователя. Как передать пользователя, которого я хочу показать?

Часть кода:

ApplicationPolicy

    class ApplicationPolicy
      attr_reader :user, :record

      def initialize(user, record)
        @user = user
        @record = record
      end

      def index?
        false
      end

      def show?
        scope.where(:id => record.id).exists?
      end

      def create?
        false
      end

      def new?
        create?
      end

      def update?
        false
      end

      def edit?
        update?
      end

      def destroy?
        false
      end

      def scope
        Pundit.policy_scope!(user, record.class)
      end

      class Scope
        attr_reader :user, :scope

        def initialize(user, scope)
          @user = user
          @scope = scope
        end

        def resolve
          scope
        end
      end
    end

Действие контроллера

 def show
   authorize @user
 end

Просмотр

      <table class="table">
        <thead>
          <tr>
            <th scope="col"></th>
            <th scope="col">Index</th>
            <th scope="col">Show</th>
            <th scope="col">New</th>
            <th scope="col">Edit</th>
            <th scope="col">Delete</th>
            <th scope="col">Report</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <th scope="row">Cars</th>
            <%  %>
            <td><span class="glyphicon glyphicon-<%= policy(Car).index? ? "ok text-success" : "remove text-danger"%>"></span></td>
            <td><span class="glyphicon glyphicon-<%= policy(Car.first).show? ? "ok text-success" : "remove text-danger"%>"></span></td>
            <td><span class="glyphicon glyphicon-<%= policy(Car).new? ? "ok text-success" : "remove text-danger"%>"></span></td>
            <td><span class="glyphicon glyphicon-<%= policy(Car.new).edit? ? "ok text-success" : "remove text-danger"%>"></span></td>
            <td><span class="glyphicon glyphicon-remove text-danger"></span></td>
            <td><span class="glyphicon glyphicon-remove text-danger"></span></td>
          </tr>
          <tr>
            <th scope="row">Animals</th>
            <td><span class="glyphicon glyphicon-ok text-success"></span></td>
            <td><span class="glyphicon glyphicon-ok text-success"></span></td>
            <td><span class="glyphicon glyphicon-remove text-danger"></span></td>
            <td><span class="glyphicon glyphicon-remove text-danger"></span></td>
            <td><span class="glyphicon glyphicon-remove text-danger"></span></td>
            <td><span class="glyphicon glyphicon-ok text-success"></span></td>
          </tr>
        </tbody>
      </table>

Как видите, в строке "policy (Car)" я так и думал реализовать.

...