awesome-repositories.com
Blog
awesome-repositories.com

Descubre los mejores repositorios open-source con nuestra búsqueda potenciada por IA.

ExplorarBúsquedas curadasAlternativas open-sourceSoftware autohospedableBlogMapa del sitio
ProyectoAcerca deCómo clasificamosPrensaServidor MCP
Aviso legalPrivacidadTérminos
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
ryanb avatar

ryanb/cancanArchived

0
View on GitHub↗
6,212 estrellas·772 forks·Ruby·MIT·10 vistas

Cancan

CanCan es una librería de autorización para aplicaciones Ruby on Rails que proporciona un framework declarativo para definir permisos de usuario. Funciona como un sistema de control de acceso basado en roles que desacopla la lógica de seguridad de los controladores centralizando todas las definiciones de habilidades en una única ubicación.

La librería se distingue por traducir reglas de permiso en filtros basados en bases de datos. Esto permite al sistema recuperar solo los registros específicos que un usuario tiene permitido ver basados en condiciones de atributos y alcances definidos, en lugar de verificar permisos después de que los datos han sido cargados.

El framework cubre la aplicación de la autorización mediante la carga automatizada de recursos y verificaciones de permisos obligatorias. Incluye mecanismos para gestionar la precedencia de permisos, resolver proveedores de habilidades personalizados y manejar excepciones de acceso denegado globalmente para disparar redirecciones o mensajes de error.

Features

  • Access Control and Authorization - Implements a comprehensive system for enforcing user permissions and access control within Ruby on Rails applications.
  • Authorization Libraries - Defines and enforces user permissions for database resources within a Ruby on Rails application.
  • Authorized Record Filtering - Modifies database queries to return only the subset of records a user is permitted to see.
  • Access Control Centralization - Manages user roles and permissions in one location to decouple security logic from application controllers.
  • Centralized Permission Management - Provides a centralized location to define all user permissions, decoupling authorization logic from controllers and models.
  • User Capability Verifications - Verifies if a user possesses the required permissions to perform specific actions on resource instances or classes.
  • Declarative Access Control Layers - Provides a framework for specifying resource permissions using declarative hash conditions and scopes.
  • Controller Action Integration - Wraps controller actions to automate resource loading and permission verification before executing business logic.
  • Custom Access Rules - Implements a system of custom allow and deny rules to determine if users can perform specific actions.
  • Accessible Resource Filtering - Verifies if users can perform specific actions on objects and handles unauthorized requests.
  • Attribute-Based Database Filtering - Filters accessible records using database column conditions and nested association hashes.
  • Role-Based Access Control - Implements complex access hierarchies and conditional rules to control what different user types can do.
  • Declarative Permission Rules - Allows defining which users can perform actions on resources using conditions, scopes, and ability sets.
  • Record-Level Filtering - Retrieves only specific data records a user is permitted to see based on defined access rules.
  • Ruby on Rails Integrations - Provides a specialized library for defining user permissions and enforcing access control within Ruby on Rails.
  • Rule Precedence Logic - Combines allow and deny rules for the same resource to create complex access hierarchies through definition order.
  • Resource-Level Access Controls - Fetches a specific resource from the database and verifies the user's permission to access that instance.
  • Hash-Based Permission Mapping - Translates Ruby hashes into database queries to filter records based on user attributes or resource properties.
  • Authorization Exception Rescue - Catches authorization failures globally to trigger custom redirects or display forbidden access messages.
  • Custom Authorization Logic - Determines whether an authorization check is required based on custom logic or specific controller states.
  • Database Query Permissions - Filters database records based on defined user abilities to retrieve only authorized data.
  • Controller Action Authorization - Automatically loads model instances and verifies access permissions for all actions within a controller.
  • Authorization Check Enforcement - Provides a mechanism to raise exceptions if a controller action completes without performing an authorization check.
  • Mandatory Authorization Checks - Requires every controller action to perform an authorization check and raises an error if any action is skipped.
  • Unauthorized Access Exceptions - Triggers specific error classes when permissions are missing to allow global handling of unauthorized requests.

Historial de estrellas

Gráfico del historial de estrellas de ryanb/cancanGráfico del historial de estrellas de ryanb/cancan

Búsqueda con IA

Explora más repositorios increíbles

Describe lo que necesitas en lenguaje sencillo: la IA clasifica miles de proyectos open-source curados por relevancia.

Start searching with AI

Alternativas open-source a Cancan

Proyectos open-source similares, clasificados según cuántas características comparten con Cancan.
  • cerbos/cerbosAvatar de cerbos

    cerbos/cerbos

    4,460Ver en GitHub↗

    Cerbos is an open-source authorization service that provides a centralized, language-agnostic engine for managing access control. It functions as a policy-as-code platform, allowing teams to define, test, and distribute authorization rules using declarative YAML or JSON configurations. By decoupling access logic from application code, it enables consistent permission enforcement across diverse service stacks. The project distinguishes itself through its ability to translate high-level authorization policies into native database query filters. This capability allows applications to enforce sec

    Goaccess-controlauthorizationgo
    Ver en GitHub↗4,460
  • nathanl/authorityAvatar de nathanl

    nathanl/authority

    1,197Ver en GitHub↗

    Authority is an authorization framework for Ruby on Rails applications that manages user permissions and access control policies. It provides a system for encapsulating complex security logic into dedicated classes, separating these concerns from core business models. The library enforces security rules by intercepting web requests at the controller level and validating actions against defined policies. It utilizes convention-based mapping to automatically associate models with their corresponding authorization classes, supporting both global checks and instance-aware validation for specific

    Rubyauthorizationruby
    Ver en GitHub↗1,197
  • openzeppelin/openzeppelin-contractsAvatar de OpenZeppelin

    OpenZeppelin/openzeppelin-contracts

    27,157Ver en GitHub↗

    OpenZeppelin Contracts is a library of modular, secure, and reusable smart contract components designed for the development of decentralized applications. It provides a foundational framework for building standard-compliant contracts, offering battle-tested implementations for token standards, access control, and common utility patterns. The project distinguishes itself through its comprehensive support for complex architectural patterns, including proxy-based upgradeability, role-based access control, and account abstraction. It enables developers to implement modular logic injection via hoo

    Solidityethereumevmsecurity
    Ver en GitHub↗27,157
  • apache/gravitinoAvatar de apache

    apache/gravitino

    2,866Ver en GitHub↗

    Gravitino is a federated metadata lake and unified data catalog designed to manage tables, files, and AI models across diverse data sources and cloud storage. It serves as a centralized interface for governing schemas, access controls, and tagging across relational databases, messaging queues, and object stores. The project distinguishes itself by unifying the management of AI assets, such as machine learning models and their version lineages, alongside traditional tabular data. It also implements the Iceberg REST specification to provide a standardized metadata server and proxy for lakehouse

    Javaai-catalogdata-catalogdatalake
    Ver en GitHub↗2,866
Ver las 30 alternativas a Cancan→

Preguntas frecuentes

¿Qué hace ryanb/cancan?

CanCan es una librería de autorización para aplicaciones Ruby on Rails que proporciona un framework declarativo para definir permisos de usuario. Funciona como un sistema de control de acceso basado en roles que desacopla la lógica de seguridad de los controladores centralizando todas las definiciones de habilidades en una única ubicación.

¿Cuáles son las características principales de ryanb/cancan?

Las características principales de ryanb/cancan son: Access Control and Authorization, Authorization Libraries, Authorized Record Filtering, Access Control Centralization, Centralized Permission Management, User Capability Verifications, Declarative Access Control Layers, Controller Action Integration.

¿Qué alternativas de código abierto existen para ryanb/cancan?

Las alternativas de código abierto para ryanb/cancan incluyen: cerbos/cerbos — Cerbos is an open-source authorization service that provides a centralized, language-agnostic engine for managing… nathanl/authority — Authority is an authorization framework for Ruby on Rails applications that manages user permissions and access… openzeppelin/openzeppelin-contracts — OpenZeppelin Contracts is a library of modular, secure, and reusable smart contract components designed for the… apache/gravitino — Gravitino is a federated metadata lake and unified data catalog designed to manage tables, files, and AI models across… hsluoyz/casbin — Casbin is an authorization library designed to manage application access control and permissions through a… vendurehq/vendure — Vendure is a Node.js e-commerce engine and headless commerce framework built with NestJS and TypeScript. It serves as…