Giter Club home page Giter Club logo

Comments (9)

brendon avatar brendon commented on May 18, 2024 1

@palkan, you might want to remove https://actionpolicy.evilmartians.io/#/controller_action_aliases that relates to this PR.

from action_policy.

palkan avatar palkan commented on May 18, 2024

in some of my controllers there are other actions (e.g. sort) and some that are injected by concerns. In that case, it's illogical to keep adding those rule aliases to the policy

Why not using explicit rules in the concerns? That makes more sense, IMO.

I'm also using controllers concerns to add action, and I'm doing like this:

module Voted
  extend ActiveSupport::Concern

  included do
    before_action :set_votable, only: [:vote_up, :vote_down, :cancel_vote]
  end

  def vote_up
    # do smth with @votable
  end

  def set_votable
    @votable = controller_name.classify.constantize.find(params[:id])
    authorize! @votable, to: :manage?
  end
end

from action_policy.

brendon avatar brendon commented on May 18, 2024

Thanks @palkan, in my case my authorize! is called from a controller superclass. I'd have to restrict its execution to the REST verbs, then use your method to do an alternative authorize! specifying the rule. Seems like a messier approach once I'm dealing with 10's of one-off non-REST actions spread across lots of controllers (many not in concerns).

I'm authorising in the superclass because my policy doesn't care about any of the sub-models in the application, just their ultimate parent, and its place in the site tree.

I'll probably just implement something in my application that is the same as my PR. I just thought you might want to have it as part of action_policy :)

from action_policy.

palkan avatar palkan commented on May 18, 2024

I just thought you might want to have it as part of action_policy :)

What about adding this use-case to the docs? And then, if there would be a demand, include it into the gem.

from action_policy.

brendon avatar brendon commented on May 18, 2024

Ok, sounds like a good idea. Do you mean to put in the docs saying that it is a proposed feature and show examples as it would work as implemented in the PR, then ask people to chime in on this issue if they'd like to see it implemented?

from action_policy.

palkan avatar palkan commented on May 18, 2024

Yep. We can add a new top-level section, say, "Tip & Tricks", and the proposed implementation and the reasoning behind it.

And also add a link to this doc to Readme.

from action_policy.

brendon avatar brendon commented on May 18, 2024

Done (#28). I'll link to the readme from here once the PR is merged :) Hopefully that page also helps explain my use case a bit better.

from action_policy.

brendon avatar brendon commented on May 18, 2024

See: https://actionpolicy.evilmartians.io/#/controller_action_aliases for more information.

from action_policy.

palkan avatar palkan commented on May 18, 2024

Closed as stale

from action_policy.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.