awesome-repositories.com
المدونة
awesome-repositories.com

اكتشف أفضل مستودعات المصادر المفتوحة باستخدام بحث مدعوم بالذكاء الاصطناعي.

استكشفعمليات بحث منسقةبدائل مفتوحة المصدربرمجيات ذاتية الاستضافةالمدونةخريطة الموقع
المشروعحولكيفية ترتيب النتائجالصحافةخادم MCP
قانونيالخصوصيةالشروط
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
ryanb avatar

ryanb/cancanArchived

0
View on GitHub↗
6,212 نجوم·772 تفرعات·Ruby·MIT·10 مشاهدات

Cancan

CanCan is an authorization library for Ruby on Rails applications that provides a declarative framework for defining user permissions. It functions as a role-based access control system that decouples security logic from controllers by centralizing all ability definitions in a single location.

The library distinguishes itself by translating permission rules into database-driven filters. This allows the system to retrieve only the specific records a user is permitted to see based on attribute conditions and defined scopes, rather than verifying permissions after data has been loaded.

The framework covers authorization enforcement through automated resource loading and mandatory permission checks. It includes mechanisms for managing permission precedence, resolving custom ability providers, and handling access denied exceptions globally to trigger redirects or error messages.

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.

سجل النجوم

مخطط تاريخ النجوم لـ ryanb/cancanمخطط تاريخ النجوم لـ ryanb/cancan

بحث بالذكاء الاصطناعي

استكشف المزيد من المستودعات الرائعة

صف ما تحتاجه بلغة بسيطة — وسيقوم الذكاء الاصطناعي بترتيب آلاف المشاريع مفتوحة المصدر المنسقة حسب الصلة.

Start searching with AI

بدائل مفتوحة المصدر لـ Cancan

مشاريع مفتوحة المصدر مشابهة، مرتبة حسب عدد الميزات المشتركة مع Cancan.
  • cerbos/cerbosالصورة الرمزية لـ cerbos

    cerbos/cerbos

    4,460عرض على 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
    عرض على GitHub↗4,460
  • nathanl/authorityالصورة الرمزية لـ nathanl

    nathanl/authority

    1,197عرض على 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
    عرض على GitHub↗1,197
  • openzeppelin/openzeppelin-contractsالصورة الرمزية لـ OpenZeppelin

    OpenZeppelin/openzeppelin-contracts

    27,157عرض على 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
    عرض على GitHub↗27,157
  • apache/gravitinoالصورة الرمزية لـ apache

    apache/gravitino

    2,866عرض على 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
    عرض على GitHub↗2,866
عرض جميع البدائل الـ 30 لـ Cancan→

الأسئلة الشائعة

ما هي وظيفة ryanb/cancan؟

CanCan is an authorization library for Ruby on Rails applications that provides a declarative framework for defining user permissions. It functions as a role-based access control system that decouples security logic from controllers by centralizing all ability definitions in a single location.

ما هي الميزات الرئيسية لـ ryanb/cancan؟

الميزات الرئيسية لـ ryanb/cancan هي: 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.

ما هي البدائل مفتوحة المصدر لـ ryanb/cancan؟

تشمل البدائل مفتوحة المصدر لـ ryanb/cancan: 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…