         params = filter_params(conn.params)
         defn = get_registered_by_controller_route!(conn, resource)
 
-        if !restricted_action?(action, defn) && authorized_action?(conn, action, defn) do
+        if !restricted_action?(action, defn) do
           conn
           |> assign(:defn, defn)
           |> load_resource(action, defn, params[:id])
+          |> authorize_action(action)
           |> handle_plugs(action, defn)
           |> handle_before_filter(action, defn, params)
           |> handle_custom_actions(action, defn, params)

        end
      end

      defp scrub_params(conn, required_key, action) when action in [:create, :update] do
        if conn.params[required_key] do
          Phoenix.Controller.scrub_params conn, required_key

        apply(__MODULE__, action, [conn, defn, params])
      end

      defp handle_before_filter(%{halted: true} = conn, _, _, _), do: conn
      defp handle_before_filter(conn, action, defn, params) do
        _handle_before_filter(conn, action, defn, params, defn.controller_filters[:before_filter])
      end
