Token导航 LogoToken导航TokenDH.com
待分类需要联网github未标认证来源可访问clear审计通过

authorization-pundit授权专家

Agent Skill

用于辅助安全审计、权限检查、凭据风险、认证流程和常见漏洞排查。它适合让 Agent 梳理敏感配置、检查依赖风险、分析鉴权逻辑或生成安全复核清单。使用时不能把工具输出直接当最终结论,涉及密钥、令牌、用户数据或生产系统时,应先确认最小权限、脱敏方式和操作边界。

总安装

528

周安装

22

GitHub Stars

520

下载量

176
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

3

许可证

MIT

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:authorization-pundit(授权专家)
来源仓库:https://github.com/thibautbaissac/rails_ai_agents
仓库路径:skills/authorization-pundit
安装命令:
npx skills add https://github.com/thibautbaissac/rails_ai_agents --skill authorization-pundit
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。不同来源提供的安装方式可能略有差异;本站展示可直接复制的安装命令,安装前请核对来源页面。

skills.shnpx skills
npx skills add https://github.com/thibautbaissac/rails_ai_agents --skill authorization-pundit

简介

基于 Pundit 实现 Ruby on Rails 的策略化授权,采用政策对象与约定优于配置。

  • 支持作用域查询、测试友好与任意认证系统集成。
  • 适合事件、供应商等多模型权限分离管理。
  • 安装需通过 npx skills add 添加 rails_ai_agents 仓库中的 authorization-pundit 技能。
  • 需先添加 pundit gem 并运行生成器创建基础结构与示例策略。

SKILL.md

Authorization with Pundit for Rails 8

Overview

Pundit provides policy-based authorization:

  • Plain Ruby policy objects
  • Convention over configuration
  • Easy to test
  • Scoped queries for collections
  • Works with any authentication system

Quick Start

# Add to Gemfile
bundle add pundit

# Generate base files
bin/rails generate pundit:install

# Generate policy for model
bin/rails generate pundit:policy Event

Project Structure

app/
├── policies/
│   ├── application_policy.rb    # Base policy
│   ├── event_policy.rb
│   ├── vendor_policy.rb
│   └── user_policy.rb
spec/policies/
├── event_policy_spec.rb
├── vendor_policy_spec.rb
└── user_policy_spec.rb

TDD Workflow

Authorization Progress:
- [ ] Step 1: Write policy spec (RED)
- [ ] Step 2: Run spec (fails)
- [ ] Step 3: Implement policy
- [ ] Step 4: Run spec (GREEN)
- [ ] Step 5: Add policy to controller
- [ ] Step 6: Test integration

Base Policy

# app/policies/application_policy.rb
class ApplicationPolicy
  attr_reader :user, :record

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

  # Default: deny all
  def index?
    false
  end

  def show?
    false
  end

  def create?
    false
  end

  def new?
    create?
  end

  def update?
    false
  end

  def edit?
    update?
  end

  def destroy?
    false
  end

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

    def resolve
      raise NotImplementedError, "Define #resolve in #{self.class}"
    end

    private

    attr_reader :user, :scope
  end
end

Policy Implementation

Four policy patterns are available. See policies.md for full implementations:

  1. Basic Policy – owner-based access with Scope filtering by account_id
  2. Role-Based Policy – combines owner?, admin?, member_or_above? predicates; admin sees all in Scope
  3. Policy with State Conditions – gate actions on record state (locked?, destroyable?, can_cancel?)
  4. Headless Policy – policy not tied to a record (dashboards, admin panels)

Also in policies.md:

  • Permitted Attributes – role-based permitted_attributes for strong params
  • Nested Resource Policies – delegate to parent resource policy (EventPolicy.new(user, record.event).show?)

Controller Integration

See controller-integration.md for full examples of:

  • ApplicationController setup with include Pundit::Authorization, after_action:verify_authorized, and rescue_from Pundit::NotAuthorizedError
  • Full CRUD controller using authorize @event and policy_scope(Event)
  • Custom action authorization: authorize @event,:publish?
  • Skipping authorization for public pages with skip_after_action

View Integration

See views-and-testing.md for:

  • ERB conditional rendering with policy(@event).edit?
  • ViewComponent integration with EventPolicy.new(@user, @event)

Testing

See views-and-testing.md for:

  • Policy spec with permissions:show? blocks and permit/not_to permit matchers
  • pundit-matchers gem usage with permit_actions / forbid_actions
  • Request spec testing HTTP status and redirect behavior
  • I18n error message configuration and custom rescue_from handler

Checklist

  • Policy spec written first (RED)
  • Policy inherits from ApplicationPolicy
  • Scope defined for collections
  • Controller uses authorize and policy_scope
  • verify_authorized after_action enabled
  • Views use policy(@record).action?
  • Error handling configured
  • Multi-tenancy enforced in Scope
  • All specs GREEN

References

  • policies.md – Policy patterns: basic, role-based, state conditions, headless, nested, permitted attributes
  • controller-integration.md – ApplicationController setup, CRUD, custom actions, skip authorization
  • views-and-testing.md – ERB views, ViewComponent, policy specs, pundit-matchers, request specs, I18n errors

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

04

需要参考平台分布和安装热度时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Claude Code

29.51%
按下载量换算52

OpenCode

22.81%
按下载量换算40

Codex

19.88%
按下载量换算35

windsurf

13.54%
按下载量换算24

trae

9%
按下载量换算16

Antigravity

4.11%
按下载量换算7

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。

来源信息

继续浏览同类 Skills