This is an automated email from the ASF dual-hosted git repository.
hsluoyz pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/casbin-website.git
The following commit(s) were added to refs/heads/master by this push:
new 4457f8732 fix: point casbin repo links to apache org
4457f8732 is described below
commit 4457f8732b8ef9395aa5f499acf7e2e5b8b4a966
Author: Yang Luo <[email protected]>
AuthorDate: Thu Aug 6 18:23:23 2026 +0800
fix: point casbin repo links to apache org
---
blog/2018-08-07-launching-casbin-server.md | 4 +--
blog/2018-08-27-node-casbin.md | 4 +--
blog/2021-08-19-apisix-casbin-authorization.md | 4 +--
docs/Adapters.mdx | 18 +++++-----
docs/AdminPortal.mdx | 2 +-
docs/Adopters.mdx | 2 +-
docs/Benchmark.mdx | 8 ++---
docs/CloudNative.mdx | 4 +--
docs/CommandLineTools.mdx | 4 +--
docs/Contributing.mdx | 12 +++----
docs/DataPermissions.mdx | 2 +-
docs/Enforcers.mdx | 22 ++++++------
docs/EnvoyAuthz.mdx | 2 +-
docs/FrontendUsage.mdx | 4 +--
docs/Function.mdx | 24 ++++++-------
docs/GetStarted.mdx | 2 +-
docs/GraphQLMiddlewares.mdx | 2 +-
docs/HowItWorks.mdx | 2 +-
docs/IDEPlugins.mdx | 2 +-
docs/K8sGateKeeper.mdx | 2 +-
docs/KongAuthz.mdx | 4 +--
docs/LogError.mdx | 8 ++---
docs/ModelStorage.mdx | 2 +-
docs/MultiThreading.mdx | 2 +-
docs/OnlineEditor.mdx | 2 +-
docs/Overview.mdx | 8 ++---
docs/Performance.mdx | 2 +-
docs/PolicyStorage.mdx | 4 +--
docs/PriorityModel.mdx | 6 ++--
docs/RBAC.mdx | 4 +--
docs/RBACWithDomains.mdx | 2 +-
docs/RBACWithPattern.mdx | 2 +-
docs/RoleManagers.mdx | 8 ++---
docs/Service.mdx | 2 +-
docs/SupportedModels.mdx | 40 +++++++++++-----------
docs/SyntaxForModels.mdx | 10 +++---
docs/UCON.mdx | 8 ++---
docusaurus.config.js | 6 ++--
scripts/generate-homepage-release.js | 2 +-
src/components/FooterMoreBadges/badges.json | 14 ++++----
src/components/LanguageIntegration/index.js | 22 ++++++------
src/pages/help.js | 6 ++--
src/tableData/AdapterData/AdapterGoData.js | 22 ++++++------
src/tableData/AdapterData/AdapterNodejsData.js | 2 +-
src/tableData/AdapterData/AdapterSwiftData.js | 2 +-
src/tableData/DispatcherData/DispatcherGoData.js | 2 +-
src/tableData/MiddlewareData/MiddlewareGoData.js | 10 +++---
src/tableData/RoleManagerData/RoleManagerGoData.js | 8 ++---
.../RoleManagerData/RoleManagerJavaData.js | 2 +-
.../RoleManagerData/RoleManagerNodejsData.js | 2 +-
.../RoleManagerData/RoleManagerPythonData.js | 2 +-
src/tableData/WatcherData/WatcherGoData.js | 6 ++--
static/data/users.json | 6 ++--
53 files changed, 177 insertions(+), 177 deletions(-)
diff --git a/blog/2018-08-07-launching-casbin-server.md
b/blog/2018-08-07-launching-casbin-server.md
index 499cfd3e7..be4847935 100644
--- a/blog/2018-08-07-launching-casbin-server.md
+++ b/blog/2018-08-07-launching-casbin-server.md
@@ -3,7 +3,7 @@ title: Casbin Server is Launched!
authors: [BetaCat0]
---
-People often ask whether Casbin can run as a service instead of a library. The
answer is **yes**. We have launched [Casbin
Server](https://github.com/casbin/casbin-server) as a concrete **Access Control
as a Service** solution.
+People often ask whether Casbin can run as a service instead of a library. The
answer is **yes**. We have launched [Casbin
Server](https://github.com/apache/casbin-server) as a concrete **Access Control
as a Service** solution.
<!-- truncate -->
@@ -14,6 +14,6 @@ People often ask whether Casbin can run as a service instead
of a library. The a
- **gRPC** for all client communication; **REST** support is planned.
- A web admin UI for managing instances, models, policy storage, and load
balancing.
-Source code: https://github.com/casbin/casbin-server
+Source code: https://github.com/apache/casbin-server
Issues and pull requests are welcome.
diff --git a/blog/2018-08-27-node-casbin.md b/blog/2018-08-27-node-casbin.md
index 68c8df572..1a2c71cf7 100644
--- a/blog/2018-08-27-node-casbin.md
+++ b/blog/2018-08-27-node-casbin.md
@@ -3,7 +3,7 @@ title: "node-Casbin: New Member of the Casbin Family"
authors: [nodece]
---
-We have ported Casbin to Node.js:
[node-Casbin](https://github.com/casbin/node-casbin).
+We have ported Casbin to Node.js:
[node-Casbin](https://github.com/apache/casbin-node-casbin).
<!-- truncate -->
@@ -11,4 +11,4 @@ We have ported Casbin to Node.js:
[node-Casbin](https://github.com/casbin/node-c
We hope it fits your stack. Feedback and contributions are welcome.
-GitHub: https://github.com/casbin/node-casbin
+GitHub: https://github.com/apache/casbin-node-casbin
diff --git a/blog/2021-08-19-apisix-casbin-authorization.md
b/blog/2021-08-19-apisix-casbin-authorization.md
index e20a0ed6f..6bb39c65d 100644
--- a/blog/2021-08-19-apisix-casbin-authorization.md
+++ b/blog/2021-08-19-apisix-casbin-authorization.md
@@ -7,7 +7,7 @@ authors: [rushitote]
[APISIX](https://apisix.apache.org/) is a high-performance, scalable,
cloud-native API gateway built on Nginx and etcd, and an Apache Software
Foundation project. It ships with many plugins for authentication, monitoring,
routing, and more. Plugins are hot-reloaded without restarts, so you can change
behavior on the fly.
-When you need **authorization** beyond simple checks, the **authz-casbin**
plugin can help. It is an APISIX plugin built on [Lua
Casbin](https://github.com/casbin/lua-casbin/) that enforces flexible
authorization using models such as ACL, RBAC, and ABAC. [Casbin](/) is an
authorization library (originally in Go, now ported to many languages); Lua
Casbin is the Lua port. We proposed the plugin in the APISIX repo
([#4674](https://github.com/apache/apisix/issues/4674)); after review and imp
[...]
+When you need **authorization** beyond simple checks, the **authz-casbin**
plugin can help. It is an APISIX plugin built on [Lua
Casbin](https://github.com/apache/casbin-lua-casbin/) that enforces flexible
authorization using models such as ACL, RBAC, and ABAC. [Casbin](/) is an
authorization library (originally in Go, now ported to many languages); Lua
Casbin is the Lua port. We proposed the plugin in the APISIX repo
([#4674](https://github.com/apache/apisix/issues/4674)); after review [...]
<!-- truncate -->
@@ -55,7 +55,7 @@ g, bob, admin
The matcher means:
-1. **`(g(r.sub, p.sub) || keyMatch(r.sub, p.sub))`** — The request subject
either has the policy subject as a role or matches it via `keyMatch`. For
`keyMatch` and other built-ins, see [Lua Casbin
BuiltInFunctions](https://github.com/casbin/lua-casbin/blob/master/src/util/BuiltInFunctions.lua).
+1. **`(g(r.sub, p.sub) || keyMatch(r.sub, p.sub))`** — The request subject
either has the policy subject as a role or matches it via `keyMatch`. For
`keyMatch` and other built-ins, see [Lua Casbin
BuiltInFunctions](https://github.com/apache/casbin-lua-casbin/blob/master/src/util/BuiltInFunctions.lua).
2. **`keyMatch(r.obj, p.obj)`** — The request path matches the policy object.
3. **`keyMatch(r.act, p.act)`** — The request method matches the policy action.
diff --git a/docs/Adapters.mdx b/docs/Adapters.mdx
index d78307b5e..181f5612e 100644
--- a/docs/Adapters.mdx
+++ b/docs/Adapters.mdx
@@ -200,7 +200,7 @@ let e = Enforcer::new("examples/basic_model.conf",
a).await?;
</Tabs>
```
-### [MySQL adapter](https://github.com/casbin/mysql-adapter)
+### [MySQL adapter](https://github.com/apache/casbin-mysql-adapter)
Initialize an enforcer using a MySQL database connection at 127.0.0.1:3306
with root user and no password:
@@ -377,11 +377,11 @@ e.AddPolicy(...)
e.RemovePolicy(...)
```
-Additional examples:
[https://github.com/casbin/xorm-adapter/blob/master/adapter_test.go](https://github.com/casbin/xorm-adapter/blob/master/adapter_test.go)
+Additional examples:
[https://github.com/apache/casbin-xorm-adapter/blob/master/adapter_test.go](https://github.com/apache/casbin-xorm-adapter/blob/master/adapter_test.go)
### How to write an adapter
-Implement the
[Adapter](https://github.com/casbin/casbin/blob/master/persist/adapter.go)
interface with at least two required methods: `LoadPolicy(model model.Model)
error` and `SavePolicy(model model.Model) error`.
+Implement the
[Adapter](https://github.com/apache/casbin/blob/master/persist/adapter.go)
interface with at least two required methods: `LoadPolicy(model model.Model)
error` and `SavePolicy(model model.Model) error`.
Three optional methods enable Auto-Save support.
@@ -437,7 +437,7 @@ Adapter implementation requirements:
### Who is responsible to create the DB?
-By convention, adapters should automatically create a `casbin` database if it
doesn't exist and use it for policy storage. Reference implementation:
[https://github.com/casbin/xorm-adapter](https://github.com/casbin/xorm-adapter)
+By convention, adapters should automatically create a `casbin` database if it
doesn't exist and use it for policy storage. Reference implementation:
[https://github.com/apache/casbin-xorm-adapter](https://github.com/apache/casbin-xorm-adapter)
## Update Adapter
@@ -522,13 +522,13 @@ Without `UpdateAdapter` support, Casbin automatically
falls back to combining `R
## Context Adapter
-[ContextAdapter](https://github.com/casbin/casbin/blob/master/persist/adapter_context.go)
provides context-aware operations for Casbin adapters.
+[ContextAdapter](https://github.com/apache/casbin/blob/master/persist/adapter_context.go)
provides context-aware operations for Casbin adapters.
Context enables features like timeout control for adapter API calls.
### Example
-[gormadapter](https://github.com/casbin/gorm-adapter) supports context. Below
is timeout control using context:
+[gormadapter](https://github.com/apache/casbin-gorm-adapter) supports context.
Below is timeout control using context:
```go
ca, _ := NewContextAdapter("mysql", "root:@tcp(127.0.0.1:3306)/", "casbin")
@@ -546,7 +546,7 @@ if err != nil {
`ContextAdapter` API adds a context processing layer on top of standard
`Adapter` API. After implementing the standard Adapter API, wrap your logic
with context handling.
-Reference implementation:
[adapter.go](https://github.com/casbin/gorm-adapter/blob/master/adapter.go)
+Reference implementation:
[adapter.go](https://github.com/apache/casbin-gorm-adapter/blob/master/adapter.go)
## Transaction
@@ -575,6 +575,6 @@ if err := tx.Commit(); err != nil {
}
```
-Implement `TransactionalAdapter` and `TransactionContext` from
[persist/transaction.go](https://github.com/casbin/casbin/blob/master/persist/transaction.go)
to add transaction support.
+Implement `TransactionalAdapter` and `TransactionContext` from
[persist/transaction.go](https://github.com/apache/casbin/blob/master/persist/transaction.go)
to add transaction support.
-Reference:
[adapter.go](https://github.com/casbin/gorm-adapter/blob/master/adapter.go)
+Reference:
[adapter.go](https://github.com/apache/casbin-gorm-adapter/blob/master/adapter.go)
diff --git a/docs/AdminPortal.mdx b/docs/AdminPortal.mdx
index c8b34023b..132d17ada 100644
--- a/docs/AdminPortal.mdx
+++ b/docs/AdminPortal.mdx
@@ -61,7 +61,7 @@ The table below lists **third-party admin and app projects**
that use Casbin for
|
[fastapi-best-architecture](https://github.com/fastapi-practices/fastapi_best_architecture)
| [@WuClan](https://github.com/wu-clan) | Vue +
Arco-design | FastAPI | Admin portal based on FastAPI, SQLAlchemy, JWT and RBAC
|
|
[fastapi-mysql-generator](https://github.com/wxy2077/fastapi-mysql-generator)
| [@CoderCharm](https://github.com/wxy2077) |
None | FastAPI | FastAPI + MySQL + JWT + Casbin
|
|
[FastAPI-MySQL-Tortoise-Casbin](https://github.com/xingxingzaixian/FastAPI-MySQL-Tortoise-Casbin)
| [@xingxingzaixian](https://github.com/xingxingzaixian) | None |
FastAPI | FastAPI + MySQL + Tortoise + Casbin |
-| [openstack-policy-editor](https://github.com/casbin/openstack-policy-editor)
| Casbin |
Bootstrap | Django | The Web UI for Casbin
|
+|
[openstack-policy-editor](https://github.com/apache/casbin-openstack-policy-editor)
| Casbin
| Bootstrap | Django | The Web UI for Casbin
|
```mdx-code-block
</TabItem>
diff --git a/docs/Adopters.mdx b/docs/Adopters.mdx
index c793ca591..4ac7a0595 100644
--- a/docs/Adopters.mdx
+++ b/docs/Adopters.mdx
@@ -66,5 +66,5 @@ Projects that integrate Casbin for authorization. **Direct
integration** = Casbi
| Name | Description
| Plugin
| Model
| Policy
[...]
|-------------------------------------------------------|------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------
[...]
-| [Docker](https://github.com/docker/docker) | The world's leading
software container platform |
[casbin-authz-plugin](https://github.com/casbin/casbin-authz-plugin)
([recommended by
Docker](https://docs.docker.com/engine/extend/legacy_plugins/#authorization-plugins))
|
[.conf](https://github.com/casbin/casbin-authz-plugin/blob/master/examples/basic_model.conf)
| [.csv](https://github.com/casbin/casbin-authz-plugin/blob/master/e
[...]
+| [Docker](https://github.com/docker/docker) | The world's leading
software container platform |
[casbin-authz-plugin](https://github.com/apache/casbin-docker-plugin)
([recommended by
Docker](https://docs.docker.com/engine/extend/legacy_plugins/#authorization-plugins))
|
[.conf](https://github.com/apache/casbin-docker-plugin/blob/master/examples/basic_model.conf)
| [.csv](https://github.com/apache/casbin-docker-plugin/blob/maste
[...]
| [Gobis](https://github.com/orange-cloudfoundry/gobis) |
[Orange](https://github.com/orange-cloudfoundry)'s lightweight API Gateway
written in go |
[casbin](https://github.com/orange-cloudfoundry/gobis-middlewares/tree/master/casbin)
|
[Code](https://github.com/orange-cloudfoundry/gobis-middlewares/blob/master/casbin/model.go#L52-L65)
| [Request](https://github.com/orange-cloudfoundry/gobis-middlewares [...]
diff --git a/docs/Benchmark.mdx b/docs/Benchmark.mdx
index 9943493af..d0d22a8c4 100644
--- a/docs/Benchmark.mdx
+++ b/docs/Benchmark.mdx
@@ -13,7 +13,7 @@ This page reports **enforcement overhead** (time and memory
per `Enforce()` call
<TabItem value="Go" label="Go" default>
```
-Go benchmarks:
[model_b_test.go](https://github.com/casbin/casbin/blob/master/model_b_test.go).
Environment:
+Go benchmarks:
[model_b_test.go](https://github.com/apache/casbin/blob/master/model_b_test.go).
Environment:
```text
Intel(R) Core(TM) i7-6700HQ CPU @ 2.60GHz, 2601 Mhz, 4 Core(s), 8 Logical
Processor(s)
@@ -40,7 +40,7 @@ Results from `go test -bench=. -benchmem` (op = one
`Enforce()` call, ms = milli
<TabItem value="Python" label="Python">
```
-Policy enforcement overhead in [Pycasbin](https://github.com/casbin/pycasbin)
is benchmarked in
[`tests/benchmarks`](https://github.com/casbin/pycasbin/tree/master/tests/benchmarks).
Testing environment:
+Policy enforcement overhead in
[Pycasbin](https://github.com/apache/casbin-pycasbin) is benchmarked in
[`tests/benchmarks`](https://github.com/apache/casbin-pycasbin/tree/master/tests/benchmarks).
Testing environment:
```text
Intel(R) Xeon(R) CPU E5-2673 v4 @ 2.30GHz (Run by Github actions)
@@ -68,7 +68,7 @@ Results from executing `casbin_benchmark` (op = one
`enforce()` call, ms = milli
<TabItem value="C++" label="C++">
```
-Policy enforcement overhead in [Casbin
CPP](https://github.com/casbin/casbin-cpp) is benchmarked in
[`tests/benchmarks`](https://github.com/casbin/casbin-cpp/tree/master/tests/benchmarks)
using [Google's benchmarking tool](https://github.com/google/benchmark).
Testing environment:
+Policy enforcement overhead in [Casbin
CPP](https://github.com/apache/casbin-cpp) is benchmarked in
[`tests/benchmarks`](https://github.com/apache/casbin-cpp/tree/master/tests/benchmarks)
using [Google's benchmarking tool](https://github.com/google/benchmark).
Testing environment:
```text
Intel(R) Core(TM) i5-6300HQ CPU @ 2.30GHz, 4 cores, 4 threads
@@ -95,7 +95,7 @@ Results from executing the `casbin_benchmark` target built in
`Release` configur
<TabItem value="Lua (JIT)" label="Lua (JIT)">
```
-Policy enforcement overhead in [Lua
Casbin](https://github.com/casbin/lua-casbin) is benchmarked in
[bench.lua](https://github.com/casbin/lua-casbin/blob/master/bench.lua).
Testing environment:
+Policy enforcement overhead in [Lua
Casbin](https://github.com/apache/casbin-lua-casbin) is benchmarked in
[bench.lua](https://github.com/apache/casbin-lua-casbin/blob/master/bench.lua).
Testing environment:
```text
AMD Ryzen(TM) 5 4600H CPU @ 3.0GHz, 6 Cores, 12 Threads
diff --git a/docs/CloudNative.mdx b/docs/CloudNative.mdx
index e07918509..3e223ab88 100644
--- a/docs/CloudNative.mdx
+++ b/docs/CloudNative.mdx
@@ -17,8 +17,8 @@ Casbin can run as an authorization layer in cloud-native
stacks (Envoy, Istio, T
Project | Author | Description
---- | ---- | ----
-[envoy-authz](https://github.com/casbin/envoy-authz) | Casbin | Authorization
middleware for [Istio](https://istio.io/) and [Envoy](https://envoyproxy.io/)
-[kubesphere-authz](https://github.com/casbin/kubesphere-authz) | Casbin |
Authorization middleware for [kubeSphere](https://kubesphere.io/)
+[envoy-authz](https://github.com/apache/casbin-envoy-authz) | Casbin |
Authorization middleware for [Istio](https://istio.io/) and
[Envoy](https://envoyproxy.io/)
+[kubesphere-authz](https://github.com/apache/casbin-kubesphere-authz) | Casbin
| Authorization middleware for [kubeSphere](https://kubesphere.io/)
[casbin-forward-auth](https://github.com/grepplabs/casbin-forward-auth) |
grepplabs | Authorization middleware for [Traefik](https://traefik.io/),
[NGINX](https://nginx.org/), [HAProxy](https://www.haproxy.com/), [Envoy
Gateway](https://gateway.envoyproxy.io/), [Istio](https://istio.io/) and
[Envoy](https://www.envoyproxy.io/)
```mdx-code-block
diff --git a/docs/CommandLineTools.mdx b/docs/CommandLineTools.mdx
index 401f2605e..4385e3c32 100644
--- a/docs/CommandLineTools.mdx
+++ b/docs/CommandLineTools.mdx
@@ -15,7 +15,7 @@ authors: [liulifox233]
1. Clone the repository:
```bash
- git clone https://github.com/casbin/casbin-go-cli.git
+ git clone https://github.com/apache/casbin-go-cli.git
```
2. Build the CLI:
@@ -68,7 +68,7 @@ cargo install casbin-rust-cli
1. Clone the repository:
```bash
- git clone https://github.com/casbin/casbin-python-cli.git
+ git clone https://github.com/apache/casbin-python-cli.git
```
2. Install required dependencies:
diff --git a/docs/Contributing.mdx b/docs/Contributing.mdx
index 9580aef31..af77f2a03 100644
--- a/docs/Contributing.mdx
+++ b/docs/Contributing.mdx
@@ -12,25 +12,25 @@ The project splits into two main areas:
* **Core and language ports** — Implementing Casbin’s core and ecosystem in
Go, Java, Node.js, PHP, Python, .NET, C++, Rust, and others.
-| [](https://github.com/casbin/casbin) |
[](https://github.com/casbin/jcasbin) |
[](https://github.com/casbin/node-casbin) |
[](https://github.com/php-casbin/php-casbin) |
+| [](https://github.com/apache/casbin) |
[](https://github.com/apache/casbin-jcasbin) |
[](https://github.com/apache/casbin-node-casbin)
| [](https://github.com/php-casbin/php-casbin) |
|----------------------------------------------------------------------|-------------------------------------------------------------------|---------------------------------------------------------------------------|------------------------------------------------------------------------|
-| [Casbin](https://github.com/casbin/casbin) |
[jCasbin](https://github.com/casbin/jcasbin) |
[node-Casbin](https://github.com/casbin/node-casbin) |
[PHP-Casbin](https://github.com/php-casbin/php-casbin) |
+| [Casbin](https://github.com/apache/casbin) |
[jCasbin](https://github.com/apache/casbin-jcasbin) |
[node-Casbin](https://github.com/apache/casbin-node-casbin)
| [PHP-Casbin](https://github.com/php-casbin/php-casbin) |
| Production-ready |
Production-ready |
Production-ready |
Production-ready |
-| [](https://github.com/casbin/pycasbin) |
[](https://github.com/casbin/Casbin.NET) |
[](https://github.com/casbin/casbin-cpp) |
[](https://github.com/casbin/casbin-rs) |
+|
[](https://github.com/apache/casbin-pycasbin) |
[](https://github.com/apache/casbin-Casbin.NET)
| [](https://github.com/apache/casbin-cpp) |
[](https://github.com/apache/casbin-rs) |
|------------------------------------------------------------------------|--------------------------------------------------------------------------|--------------------------------------------------------------------|---------------------------------------------------------------------|
-| [PyCasbin](https://github.com/casbin/pycasbin) |
[Casbin.NET](https://github.com/casbin/Casbin.NET) |
[Casbin-CPP](https://github.com/casbin/casbin-cpp) |
[Casbin-RS](https://github.com/casbin/casbin-rs) |
+| [PyCasbin](https://github.com/apache/casbin-pycasbin)
| [Casbin.NET](https://github.com/apache/casbin-Casbin.NET)
| [Casbin-CPP](https://github.com/apache/casbin-cpp) |
[Casbin-RS](https://github.com/apache/casbin-rs) |
| Production-ready |
Production-ready |
Production-ready |
Production-ready |
* **Applications and tools** — Projects built on top of Casbin (e.g. editors,
dashboards).
| Project | Demo
| Details
| Tech Stack |
|----------------------------------------------------------|--------------------------------------------|-----------------------------------------------------------------------------------|--------------------|
-| [Casbin Editor](https://github.com/casbin/casbin-editor) | [Casbin
Editor](https://editor.casbin.org) | A browser-based editor for creating and
testing Casbin models and policies. | TypeScript + React |
+| [Casbin Editor](https://github.com/apache/casbin-editor) | [Casbin
Editor](https://editor.casbin.org) | A browser-based editor for creating and
testing Casbin models and policies. | TypeScript + React |
## Ways to contribute
-* **Use Casbin and give feedback** — Report bugs or suggest features on
[GitHub](https://github.com/casbin/casbin). For bigger ideas, discuss first on
[Discord](https://discord.gg/S5UjpzGZjN) or [GitHub
Discussions](https://github.com/casbin/casbin/discussions). Please use English
for issues and discussions.
+* **Use Casbin and give feedback** — Report bugs or suggest features on
[GitHub](https://github.com/apache/casbin). For bigger ideas, discuss first on
[Discord](https://discord.gg/S5UjpzGZjN) or [GitHub
Discussions](https://github.com/apache/casbin/discussions). Please use English
for issues and discussions.
* **Improve documentation** — Docs are a great way to get started; fixes and
clarifications are always welcome.
diff --git a/docs/DataPermissions.mdx b/docs/DataPermissions.mdx
index 22ec48354..74f23e1ca 100644
--- a/docs/DataPermissions.mdx
+++ b/docs/DataPermissions.mdx
@@ -10,7 +10,7 @@ This page describes two ways to work with data-level
permissions in Casbin: usin
### 1. Implicit roles and permissions
-When users get roles or permissions through the RBAC hierarchy (not only by
direct policy rules), those are **implicit**. Use `GetImplicitRolesForUser()`
and `GetImplicitPermissionsForUser()` to include them; `GetRolesForUser()` and
`GetPermissionsForUser()` return only direct assignments. See [GitHub
#137](https://github.com/casbin/casbin/issues/137).
+When users get roles or permissions through the RBAC hierarchy (not only by
direct policy rules), those are **implicit**. Use `GetImplicitRolesForUser()`
and `GetImplicitPermissionsForUser()` to include them; `GetRolesForUser()` and
`GetPermissionsForUser()` return only direct assignments. See [GitHub
#137](https://github.com/apache/casbin/issues/137).
### 2. BatchEnforce()
diff --git a/docs/Enforcers.mdx b/docs/Enforcers.mdx
index f2f90bb96..c87f7ff5f 100644
--- a/docs/Enforcers.mdx
+++ b/docs/Enforcers.mdx
@@ -19,12 +19,12 @@ The following enforcers are available by language. If you
maintain a third-party
| Enforcer
| Author | Description
|
|---------------------------------------------------------------------------------------------|--------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| [Enforcer](https://github.com/casbin/casbin/blob/master/enforcer.go)
| Casbin | The base `Enforcer` provides the primary interface
for policy and model operations. See the [Management API
documentation](/docs/management-api) for detailed API information.
|
-|
[CachedEnforcer](https://github.com/casbin/casbin/blob/master/enforcer_cached.go)
| Casbin | Extends the `Enforcer` with in-memory caching of
enforcement results. Supports configurable cache expiration and includes
thread-safe access via read-write locks. Use `EnableCache` to toggle caching
(enabled by default). The remaining API methods match those of the base
`Enforcer`.
|
-|
[DistributedEnforcer](https://github.com/casbin/casbin/blob/master/enforcer_distributed.go)
| Casbin | Designed for distributed deployments, this enforcer wraps
`SyncedEnforcer` to work with dispatchers. Additional information is available
in the [dispatcher documentation](/docs/dispatchers#distributedenforcer).
|
-|
[SyncedEnforcer](https://github.com/casbin/casbin/blob/master/enforcer_synced.go)
| Casbin | Extends `Enforcer` with synchronized access for
thread-safe operations.
|
-|
[SyncedCachedEnforcer](https://github.com/casbin/casbin/blob/master/enforcer_cached_synced.go)|
Casbin | Combines the caching features of `CachedEnforcer` with the
synchronization of `SyncedEnforcer`.
|
-|
[ContextEnforcer](https://github.com/casbin/casbin/blob/master/enforcer_context.go)
| Casbin | Implements the `IEnforcerContext` interface to provide
context-aware operations. Currently supports context for adapter operations
like `LoadPolicyCtx()`, `SavePolicyCtx()`, `AddPolicyCtx()`, and
`RemovePolicyCtx()`. This interface is designed for future expansion of context
support across additional Casbin operations.
|
+| [Enforcer](https://github.com/apache/casbin/blob/master/enforcer.go)
| Casbin | The base `Enforcer` provides the primary interface
for policy and model operations. See the [Management API
documentation](/docs/management-api) for detailed API information.
|
+|
[CachedEnforcer](https://github.com/apache/casbin/blob/master/enforcer_cached.go)
| Casbin | Extends the `Enforcer` with in-memory caching of
enforcement results. Supports configurable cache expiration and includes
thread-safe access via read-write locks. Use `EnableCache` to toggle caching
(enabled by default). The remaining API methods match those of the base
`Enforcer`.
|
+|
[DistributedEnforcer](https://github.com/apache/casbin/blob/master/enforcer_distributed.go)
| Casbin | Designed for distributed deployments, this enforcer wraps
`SyncedEnforcer` to work with dispatchers. Additional information is available
in the [dispatcher documentation](/docs/dispatchers#distributedenforcer).
|
+|
[SyncedEnforcer](https://github.com/apache/casbin/blob/master/enforcer_synced.go)
| Casbin | Extends `Enforcer` with synchronized access for
thread-safe operations.
|
+|
[SyncedCachedEnforcer](https://github.com/apache/casbin/blob/master/enforcer_cached_synced.go)|
Casbin | Combines the caching features of `CachedEnforcer` with the
synchronization of `SyncedEnforcer`.
|
+|
[ContextEnforcer](https://github.com/apache/casbin/blob/master/enforcer_context.go)
| Casbin | Implements the `IEnforcerContext` interface to provide
context-aware operations. Currently supports context for adapter operations
like `LoadPolicyCtx()`, `SavePolicyCtx()`, `AddPolicyCtx()`, and
`RemovePolicyCtx()`. This interface is designed for future expansion of context
support across additional Casbin operations.
|
```mdx-code-block
</TabItem>
@@ -33,11 +33,11 @@ The following enforcers are available by language. If you
maintain a third-party
| Enforcer
| Author | Description
|
|---------------------------------------------------------------------------------------------|--------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-|
[Enforcer](https://github.com/casbin/pycasbin/blob/master/casbin/enforcer.py)
| Casbin | The base `Enforcer` provides the primary
interface for policy and model operations. See the [Management API
documentation](/docs/management-api) for detailed API information.
|
-|
[DistributedEnforcer](https://github.com/casbin/pycasbin/blob/master/casbin/distributed_enforcer.py)
| Casbin | Designed for distributed deployments, this enforcer wraps
`SyncedEnforcer` to work with dispatchers. Additional information is available
in the [dispatcher documentation](/docs/dispatchers#distributedenforcer).
|
-|
[SyncedEnforcer](https://github.com/casbin/pycasbin/blob/master/casbin/synced_enforcer.py)
| Casbin | Extends `Enforcer` with synchronized access for
thread-safe operations.
|
-|
[AsyncEnforcer](https://github.com/casbin/pycasbin/blob/master/casbin/async_enforcer.py)|
Casbin | Provides asynchronous API methods for non-blocking enforcement
operations.
|
-|
[FastEnforcer](https://github.com/casbin/pycasbin/blob/master/casbin/fast_enforcer.py)|
Casbin | Uses an optimized model architecture offering up to 50× performance
improvements over the standard enforcer. More details are available at
[fastbin's repository](https://github.com/wakemaster39/fastbin).
[...]
+|
[Enforcer](https://github.com/apache/casbin-pycasbin/blob/master/casbin/enforcer.py)
| Casbin | The base `Enforcer` provides the primary
interface for policy and model operations. See the [Management API
documentation](/docs/management-api) for detailed API information.
[...]
+|
[DistributedEnforcer](https://github.com/apache/casbin-pycasbin/blob/master/casbin/distributed_enforcer.py)
| Casbin | Designed for distributed deployments, this enforcer wraps
`SyncedEnforcer` to work with dispatchers. Additional information is available
in the [dispatcher documentation](/docs/dispatchers#distributedenforcer).
[...]
+|
[SyncedEnforcer](https://github.com/apache/casbin-pycasbin/blob/master/casbin/synced_enforcer.py)
| Casbin | Extends `Enforcer` with synchronized access for
thread-safe operations.
|
+|
[AsyncEnforcer](https://github.com/apache/casbin-pycasbin/blob/master/casbin/async_enforcer.py)|
Casbin | Provides asynchronous API methods for non-blocking enforcement
operations.
|
+|
[FastEnforcer](https://github.com/apache/casbin-pycasbin/blob/master/casbin/fast_enforcer.py)|
Casbin | Uses an optimized model architecture offering up to 50× performance
improvements over the standard enforcer. More details are available at
[fastbin's repository](https://github.com/wakemaster39/fastbin).
[...]
```mdx-code-block
</TabItem>
diff --git a/docs/EnvoyAuthz.mdx b/docs/EnvoyAuthz.mdx
index 8dd1a7b0d..bf21aa906 100644
--- a/docs/EnvoyAuthz.mdx
+++ b/docs/EnvoyAuthz.mdx
@@ -6,7 +6,7 @@ keywords: [Envoy, Envoy-authz, Istio]
authors: [ashish493]
---
-**[envoy-authz](https://github.com/casbin/envoy-authz)** is an Envoy external
authorization service that uses Casbin for RBAC/ABAC. It implements [Envoy’s
external auth gRPC
API](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/security/ext_authz_filter.html)
and works with Istio or any Envoy-based mesh.
+**[envoy-authz](https://github.com/apache/casbin-envoy-authz)** is an Envoy
external authorization service that uses Casbin for RBAC/ABAC. It implements
[Envoy’s external auth gRPC
API](https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/security/ext_authz_filter.html)
and works with Istio or any Envoy-based mesh.
## Prerequisites
diff --git a/docs/FrontendUsage.mdx b/docs/FrontendUsage.mdx
index 5efaaa649..3bb6dd519 100644
--- a/docs/FrontendUsage.mdx
+++ b/docs/FrontendUsage.mdx
@@ -6,7 +6,7 @@ keywords: [Casbin.js, react-authz, rbac-react, vue-authz,
angular-authz]
authors: [hsluoyz]
---
-**[Casbin.js](https://github.com/casbin/casbin.js)** brings Casbin-style
access control to the frontend: define permissions (e.g. from your backend) and
use them to show/hide UI or route users. It works in **manual** mode (you set
permissions in code) or **auto** mode (fetch from an API).
+**[Casbin.js](https://github.com/apache/casbin-casbin.js)** brings
Casbin-style access control to the frontend: define permissions (e.g. from your
backend) and use them to show/hide UI or route users. It works in **manual**
mode (you set permissions in code) or **auto** mode (fetch from an API).
## Installation
@@ -152,7 +152,7 @@ func (c *APIController) GetFrontendPermission() {
:::note
-Currently, `CasbinJsGetPermissionForUser` is available only in Go Casbin and
Node-Casbin. To request support in other languages, please [open an
issue](https://github.com/casbin/casbin.js/issues) or leave a comment below.
+Currently, `CasbinJsGetPermissionForUser` is available only in Go Casbin and
Node-Casbin. To request support in other languages, please [open an
issue](https://github.com/apache/casbin-casbin.js/issues) or leave a comment
below.
:::
diff --git a/docs/Function.mdx b/docs/Function.mdx
index 66f702c26..47ca16d8c 100644
--- a/docs/Function.mdx
+++ b/docs/Function.mdx
@@ -20,14 +20,14 @@ Available built-in functions:
| Function | url | pattern
| Example
|
|------------|-------------------------------------------------|--------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| keyMatch | a URL path like `/alice_data/resource1` | a URL path or
a `*` pattern like `/alice_data/*` |
[keymatch_model.conf](https://github.com/casbin/casbin/blob/master/examples/keymatch_model.conf)/[keymatch_policy.csv](https://github.com/casbin/casbin/blob/master/examples/keymatch_policy.csv)
|
-| keyMatch2 | a URL path like `/alice_data/resource1` | a URL path or
a `:` pattern like `/alice_data/:resource` |
[keymatch2_model.conf](https://github.com/casbin/casbin/blob/master/examples/keymatch2_model.conf)/[keymatch2_policy.csv](https://github.com/casbin/casbin/blob/master/examples/keymatch2_policy.csv)
|
-| keyMatch3 | a URL path like `/alice_data/resource1` | a URL path or
a `{}` pattern like `/alice_data/{resource}` |
[https://github.com/casbin/casbin/blob/277c1a2b85698272f764d71a94d2595a8d425915/util/builtin_operators_test.go#L171-L196](https://github.com/casbin/casbin/blob/277c1a2b85698272f764d71a94d2595a8d425915/util/builtin_operators_test.go#L171-L196)
|
-| keyMatch4 | a URL path like `/alice_data/123/book/123` | a URL path or
a `{}` pattern like `/alice_data/{id}/book/{id}` |
[https://github.com/casbin/casbin/blob/277c1a2b85698272f764d71a94d2595a8d425915/util/builtin_operators_test.go#L208-L222](https://github.com/casbin/casbin/blob/277c1a2b85698272f764d71a94d2595a8d425915/util/builtin_operators_test.go#L208-L222)
|
-| keyMatch5 | a URL path like `/alice_data/123/?status=1` | a URL path, a
`{}` or `*` pattern like `/alice_data/{id}/*` |
[https://github.com/casbin/casbin/blob/1cde2646d10ad1190c0d784c3a1c0e1ace1b5bc9/util/builtin_operators_test.go#L485-L526](https://github.com/casbin/casbin/blob/1cde2646d10ad1190c0d784c3a1c0e1ace1b5bc9/util/builtin_operators_test.go#L485-L526)
|
-| regexMatch | any string | a regular
expression pattern |
[keymatch_model.conf](https://github.com/casbin/casbin/blob/master/examples/keymatch_model.conf)/[keymatch_policy.csv](https://github.com/casbin/casbin/blob/master/examples/keymatch_policy.csv)
|
-| ipMatch | an IP address like `192.168.2.123` | an IP address
or a CIDR like `192.168.2.0/24` |
[ipmatch_model.conf](https://github.com/casbin/casbin/blob/master/examples/ipmatch_model.conf)/[ipmatch_policy.csv](https://github.com/casbin/casbin/blob/master/examples/ipmatch_policy.csv)
|
-| globMatch | a path-like path like `/alice_data/resource1` | a glob
pattern like `/alice_data/*` |
[https://github.com/casbin/casbin/blob/277c1a2b85698272f764d71a94d2595a8d425915/util/builtin_operators_test.go#L426-L466](https://github.com/casbin/casbin/blob/277c1a2b85698272f764d71a94d2595a8d425915/util/builtin_operators_test.go#L426-L466)
|
+| keyMatch | a URL path like `/alice_data/resource1` | a URL path or
a `*` pattern like `/alice_data/*` |
[keymatch_model.conf](https://github.com/apache/casbin/blob/master/examples/keymatch_model.conf)/[keymatch_policy.csv](https://github.com/apache/casbin/blob/master/examples/keymatch_policy.csv)
|
+| keyMatch2 | a URL path like `/alice_data/resource1` | a URL path or
a `:` pattern like `/alice_data/:resource` |
[keymatch2_model.conf](https://github.com/apache/casbin/blob/master/examples/keymatch2_model.conf)/[keymatch2_policy.csv](https://github.com/apache/casbin/blob/master/examples/keymatch2_policy.csv)
|
+| keyMatch3 | a URL path like `/alice_data/resource1` | a URL path or
a `{}` pattern like `/alice_data/{resource}` |
[https://github.com/apache/casbin/blob/277c1a2b85698272f764d71a94d2595a8d425915/util/builtin_operators_test.go#L171-L196](https://github.com/apache/casbin/blob/277c1a2b85698272f764d71a94d2595a8d425915/util/builtin_operators_test.go#L171-L196)
|
+| keyMatch4 | a URL path like `/alice_data/123/book/123` | a URL path or
a `{}` pattern like `/alice_data/{id}/book/{id}` |
[https://github.com/apache/casbin/blob/277c1a2b85698272f764d71a94d2595a8d425915/util/builtin_operators_test.go#L208-L222](https://github.com/apache/casbin/blob/277c1a2b85698272f764d71a94d2595a8d425915/util/builtin_operators_test.go#L208-L222)
|
+| keyMatch5 | a URL path like `/alice_data/123/?status=1` | a URL path, a
`{}` or `*` pattern like `/alice_data/{id}/*` |
[https://github.com/apache/casbin/blob/1cde2646d10ad1190c0d784c3a1c0e1ace1b5bc9/util/builtin_operators_test.go#L485-L526](https://github.com/apache/casbin/blob/1cde2646d10ad1190c0d784c3a1c0e1ace1b5bc9/util/builtin_operators_test.go#L485-L526)
|
+| regexMatch | any string | a regular
expression pattern |
[keymatch_model.conf](https://github.com/apache/casbin/blob/master/examples/keymatch_model.conf)/[keymatch_policy.csv](https://github.com/apache/casbin/blob/master/examples/keymatch_policy.csv)
|
+| ipMatch | an IP address like `192.168.2.123` | an IP address
or a CIDR like `192.168.2.0/24` |
[ipmatch_model.conf](https://github.com/apache/casbin/blob/master/examples/ipmatch_model.conf)/[ipmatch_policy.csv](https://github.com/apache/casbin/blob/master/examples/ipmatch_policy.csv)
|
+| globMatch | a path-like path like `/alice_data/resource1` | a glob
pattern like `/alice_data/*` |
[https://github.com/apache/casbin/blob/277c1a2b85698272f764d71a94d2595a8d425915/util/builtin_operators_test.go#L426-L466](https://github.com/apache/casbin/blob/277c1a2b85698272f764d71a94d2595a8d425915/util/builtin_operators_test.go#L426-L466)
|
Key-extraction functions take three parameters (except `keyGet`, which takes
two):
@@ -45,11 +45,11 @@ Examples:
| Function | url | pattern
| key_name |
example
|
|----------|---------------------------------------|----------------------------------------------------------------|-----------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| keyGet | a URL path like `/proj/resource1` | a URL path or a `*`
pattern like `/proj/*` | \
|
[keyget_model.conf](https://github.com/casbin/casbin/blob/master/examples/keyget_model.conf)/[keymatch_policy.csv](https://github.com/casbin/casbin/blob/master/examples/keymatch_policy.csv)
|
-| keyGet2 | a URL path like `/proj/resource1` | a URL path or `:` pattern
like `/proj/:resource` | key name specified in the pattern |
[keyget2_model.conf](https://github.com/casbin/casbin/blob/master/examples/keyget2_model.conf)/[keymatch2_policy.csv](https://github.com/casbin/casbin/blob/master/examples/keymatch2_policy.csv)
|
-| keyGet3 | a URL path like `/proj/res3_admin/` | a URL path or `{}`
pattern like `/proj/{resource}_admin/*` | key name specified in the
pattern |
[https://github.com/casbin/casbin/blob/7bd496f94f5a2739a392d333a9aaaa10ae397673/util/builtin_operators_test.go#L209-L247](https://github.com/casbin/casbin/blob/7bd496f94f5a2739a392d333a9aaaa10ae397673/util/builtin_operators_test.go#L209-L247)
|
+| keyGet | a URL path like `/proj/resource1` | a URL path or a `*`
pattern like `/proj/*` | \
|
[keyget_model.conf](https://github.com/apache/casbin/blob/master/examples/keyget_model.conf)/[keymatch_policy.csv](https://github.com/apache/casbin/blob/master/examples/keymatch_policy.csv)
|
+| keyGet2 | a URL path like `/proj/resource1` | a URL path or `:` pattern
like `/proj/:resource` | key name specified in the pattern |
[keyget2_model.conf](https://github.com/apache/casbin/blob/master/examples/keyget2_model.conf)/[keymatch2_policy.csv](https://github.com/apache/casbin/blob/master/examples/keymatch2_policy.csv)
|
+| keyGet3 | a URL path like `/proj/res3_admin/` | a URL path or `{}`
pattern like `/proj/{resource}_admin/*` | key name specified in the
pattern |
[https://github.com/apache/casbin/blob/7bd496f94f5a2739a392d333a9aaaa10ae397673/util/builtin_operators_test.go#L209-L247](https://github.com/apache/casbin/blob/7bd496f94f5a2739a392d333a9aaaa10ae397673/util/builtin_operators_test.go#L209-L247)
|
-Complete function details:
[https://github.com/casbin/casbin/blob/master/util/builtin_operators_test.go](https://github.com/casbin/casbin/blob/master/util/builtin_operators_test.go)
+Complete function details:
[https://github.com/apache/casbin/blob/master/util/builtin_operators_test.go](https://github.com/apache/casbin/blob/master/util/builtin_operators_test.go)
## Adding a custom function
diff --git a/docs/GetStarted.mdx b/docs/GetStarted.mdx
index 93dfa4e4e..aa8f604d9 100644
--- a/docs/GetStarted.mdx
+++ b/docs/GetStarted.mdx
@@ -131,7 +131,7 @@ dotnet add package Casbin.NET
```bash
# Download source
-git clone https://github.com/casbin/casbin-cpp.git
+git clone https://github.com/apache/casbin-cpp.git
# Generate project files
cd casbin-cpp && mkdir build && cd build && cmake .. -DCMAKE_BUILD_TYPE=Release
diff --git a/docs/GraphQLMiddlewares.mdx b/docs/GraphQLMiddlewares.mdx
index 1b58c88b3..4157c404c 100644
--- a/docs/GraphQLMiddlewares.mdx
+++ b/docs/GraphQLMiddlewares.mdx
@@ -36,7 +36,7 @@ Available Casbin GraphQL integrations:
| Middleware
| GraphQL Implementation | Author
| Description
|
|------------------------------------------------------------------------------------|--------------------------------------------------|------------------------------------------------|--------------------------------------------------------|
-| [graphql-authz](https://github.com/casbin/graphql-authz)
| [graphql](https://github.com/graphql-go/graphql) | Casbin
| Authorization middleware for graphql-go
|
+| [graphql-authz](https://github.com/apache/casbin-node-casbin-graphql-authz)
| [graphql](https://github.com/graphql-go/graphql) |
Casbin | Authorization middleware for
graphql-go |
| [graphql-casbin](https://github.com/esmaeilpour/graphql-casbin)
| [graphql](https://github.com/graphql-go/graphql) |
[@esmaeilpour](https://github.com/esmaeilpour) | GraphQL and Casbin integration
example |
|
[gqlgen_casbin_RBAC_example](https://github.com/WenyXu/gqlgen_casbin_RBAC_example)
| [gqlgen](https://github.com/99designs/gqlgen) |
[@WenyXu](https://github.com/WenyXu) | (empty)
|
diff --git a/docs/HowItWorks.mdx b/docs/HowItWorks.mdx
index ac3bb7122..69e018052 100644
--- a/docs/HowItWorks.mdx
+++ b/docs/HowItWorks.mdx
@@ -106,4 +106,4 @@ m = r.obj == p.obj && r.act == p.act || r.obj in ('data2',
'data3')
The array must have more than one element; otherwise the Go implementation may
panic.
:::
-For more operators, see [govaluate](https://github.com/casbin/govaluate).
+For more operators, see
[govaluate](https://github.com/apache/casbin-govaluate).
diff --git a/docs/IDEPlugins.mdx b/docs/IDEPlugins.mdx
index dad6b2db6..d067dbc9a 100644
--- a/docs/IDEPlugins.mdx
+++ b/docs/IDEPlugins.mdx
@@ -15,4 +15,4 @@ Casbin has IDE plugins for syntax highlighting and editing of
model/policy files
## Visual Studio Code
-- Source code:
[https://github.com/casbin/casbin-vscode-plugin](https://github.com/casbin/casbin-vscode-plugin)
+- Source code:
[https://github.com/apache/casbin-vscode-plugin](https://github.com/apache/casbin-vscode-plugin)
diff --git a/docs/K8sGateKeeper.mdx b/docs/K8sGateKeeper.mdx
index e72f73d4c..1fee6aa1b 100644
--- a/docs/K8sGateKeeper.mdx
+++ b/docs/K8sGateKeeper.mdx
@@ -8,7 +8,7 @@ authors: [ComradeProgrammer]
## Overview
-**Casbin K8s-Gatekeeper** is a Kubernetes admission webhook that uses Casbin
for authorization. You define models and policies declaratively to allow or
deny operations on any Kubernetes resource—no custom code in the webhook.
Maintained by the Casbin community:
[github.com/casbin/k8s-gatekeeper](https://github.com/casbin/k8s-gatekeeper).
+**Casbin K8s-Gatekeeper** is a Kubernetes admission webhook that uses Casbin
for authorization. You define models and policies declaratively to allow or
deny operations on any Kubernetes resource—no custom code in the webhook.
Maintained by the Casbin community:
[github.com/apache/casbin-k8s-gatekeeper](https://github.com/apache/casbin-k8s-gatekeeper).
### Basic example
diff --git a/docs/KongAuthz.mdx b/docs/KongAuthz.mdx
index 5229081ff..849d64423 100644
--- a/docs/KongAuthz.mdx
+++ b/docs/KongAuthz.mdx
@@ -6,7 +6,7 @@ keywords: [Kong, Kong API Gateway, kong-authz, Lua]
authors: [hsluoyz]
---
-**[kong-authz](https://github.com/casbin-lua/kong-authz)** is a Kong plugin
that does request authorization with
[lua-casbin](https://github.com/casbin/lua-casbin). You define models and
policies as usual; the plugin enforces them on Kong routes.
+**[kong-authz](https://github.com/casbin-lua/kong-authz)** is a Kong plugin
that does request authorization with
[lua-casbin](https://github.com/apache/casbin-lua-casbin). You define models
and policies as usual; the plugin enforces them on Kong routes.
## Prerequisites
@@ -170,5 +170,5 @@ On first execution, this creates a Casbin Enforcer using
the specified model and
## Resources
- [kong-authz GitHub Repository](https://github.com/casbin-lua/kong-authz)
-- [Lua Casbin](https://github.com/casbin/lua-casbin/)
+- [Lua Casbin](https://github.com/apache/casbin-lua-casbin/)
- [Kong Documentation](https://docs.konghq.com/)
diff --git a/docs/LogError.mdx b/docs/LogError.mdx
index a9f8f73a9..8a1d43a69 100644
--- a/docs/LogError.mdx
+++ b/docs/LogError.mdx
@@ -19,7 +19,7 @@ Casbin can log requests, model load, and policy changes.
**Logging is off by def
:::
:::note
-**Python:** PyCasbin uses the standard `logging` module. Configure your app’s
logging as usual; PyCasbin uses `logging.getLogger()`. Optional
`logging_config` is documented in
[pycasbin/util/log.py](https://github.com/casbin/pycasbin/blob/master/casbin/util/log.py).
See [Python logging](https://docs.python.org/3/library/logging.config.html)
and [Django logging](https://docs.djangoproject.com/en/4.2/topics/logging/) for
setup.
+**Python:** PyCasbin uses the standard `logging` module. Configure your app’s
logging as usual; PyCasbin uses `logging.getLogger()`. Optional
`logging_config` is documented in
[pycasbin/util/log.py](https://github.com/apache/casbin-pycasbin/blob/master/casbin/util/log.py).
See [Python logging](https://docs.python.org/3/library/logging.config.html)
and [Django logging](https://docs.djangoproject.com/en/4.2/topics/logging/) for
setup.
:::
### Configure Separate Loggers for Different Enforcers
@@ -51,8 +51,8 @@ Casbin provides several logger implementations:
| Logger
| Author | Description
|
|-----------------------------------------------------------------------------------------------------|--------|--------------------------------------------------------------------------------------------------------------------------------|
-| [Default logger
(built-in)](https://github.com/casbin/casbin/blob/master/log/default_logger.go)
| Casbin | The default logger using Go's standard log package.
|
-| [Zap logger](https://github.com/casbin/zap-logger)
| Casbin | Uses [zap](https://github.com/uber-go/zap)
for JSON-encoded logs with additional customization options via zap-logger.
|
+| [Default logger
(built-in)](https://github.com/apache/casbin/blob/master/log/default_logger.go)
| Casbin | The default logger using Go's standard log package.
|
+| [Zap logger](https://github.com/apache/casbin-zap-logger)
| Casbin | Uses
[zap](https://github.com/uber-go/zap) for JSON-encoded logs with additional
customization options via zap-logger. |
```mdx-code-block
</TabItem>
@@ -70,7 +70,7 @@ Casbin provides several logger implementations:
#### Implementing Custom Loggers
-Custom loggers must implement the
[Logger](https://github.com/casbin/casbin/blob/master/log/logger.go#L20)
interface.
+Custom loggers must implement the
[Logger](https://github.com/apache/casbin/blob/master/log/logger.go#L20)
interface.
| Method | Type | Description |
|--------------|-----------|--------------------------------------------------|
diff --git a/docs/ModelStorage.mdx b/docs/ModelStorage.mdx
index a7cf4912b..6e0c10f42 100644
--- a/docs/ModelStorage.mdx
+++ b/docs/ModelStorage.mdx
@@ -14,7 +14,7 @@ You can load a model in three ways:
Loading from a `.conf` file is the usual approach and makes it easy to share
and discuss models.
-Example:
[examples/rbac_model.conf](https://github.com/casbin/casbin/blob/master/examples/rbac_model.conf)
+Example:
[examples/rbac_model.conf](https://github.com/apache/casbin/blob/master/examples/rbac_model.conf)
```ini
[request_definition]
diff --git a/docs/MultiThreading.mdx b/docs/MultiThreading.mdx
index d2c38a07b..b3ac86eaa 100644
--- a/docs/MultiThreading.mdx
+++ b/docs/MultiThreading.mdx
@@ -6,6 +6,6 @@ keywords: [multi-threading]
authors: [hsluoyz]
---
-In **multi-threaded** code, use Casbin’s **synchronized enforcer** so one
enforcer can be shared safely across threads:
[SyncedEnforcer](https://github.com/casbin/casbin/blob/master/enforcer_synced.go)
(Go),
[enforcer_synced.cpp](https://github.com/casbin/casbin-cpp/blob/master/casbin/enforcer_synced.cpp)
(C++).
+In **multi-threaded** code, use Casbin’s **synchronized enforcer** so one
enforcer can be shared safely across threads:
[SyncedEnforcer](https://github.com/apache/casbin/blob/master/enforcer_synced.go)
(Go),
[enforcer_synced.cpp](https://github.com/apache/casbin-cpp/blob/master/casbin/enforcer_synced.cpp)
(C++).
The synced enforcer can also **auto-reload** policy: call
`StartAutoLoadPolicy()` to poll the policy source and reload when it changes;
call `StopAutoLoadPolicy()` to stop.
diff --git a/docs/OnlineEditor.mdx b/docs/OnlineEditor.mdx
index 9036386de..158569454 100644
--- a/docs/OnlineEditor.mdx
+++ b/docs/OnlineEditor.mdx
@@ -50,7 +50,7 @@ To implement custom matching functions in your code,
configure them through the
:::note
-The editor supports [Node-Casbin
(Node.js)](https://github.com/casbin/node-casbin), [JCasbin
(Java)](https://github.com/casbin/jcasbin), [Casbin
(Go)](https://github.com/casbin/casbin), [Casbin-rs
(Rust)](https://github.com/casbin/casbin-rs), [PyCasbin
(Python)](https://github.com/casbin/pycasbin), and [Casbin.NET
(C#)](https://github.com/casbin/Casbin.NET). Switch between implementations in
the upper right corner to test your configuration.
+The editor supports [Node-Casbin
(Node.js)](https://github.com/apache/casbin-node-casbin), [JCasbin
(Java)](https://github.com/apache/casbin-jcasbin), [Casbin
(Go)](https://github.com/apache/casbin), [Casbin-rs
(Rust)](https://github.com/apache/casbin-rs), [PyCasbin
(Python)](https://github.com/apache/casbin-pycasbin), and [Casbin.NET
(C#)](https://github.com/apache/casbin-Casbin.NET). Switch between
implementations in the upper right corner to test your configuration.
The editor validates models through a remote CLI. Results may vary slightly
from your local environment due to implementation differences. Report any
issues to the appropriate Casbin implementation repository.
diff --git a/docs/Overview.mdx b/docs/Overview.mdx
index 845198272..d0ab0fc70 100644
--- a/docs/Overview.mdx
+++ b/docs/Overview.mdx
@@ -14,14 +14,14 @@ Implementing rule-based access control is straightforward:
define subjects, obje
Casbin provides native support for multiple programming languages so you can
integrate it into a wide range of projects and workflows:
-| [](https://github.com/casbin/casbin) |
[](https://github.com/casbin/jcasbin) |
[](https://github.com/casbin/node-casbin) |
[](https://github.com/php-casbin/php-casbin) |
+| [](https://github.com/apache/casbin) |
[](https://github.com/apache/casbin-jcasbin) |
[](https://github.com/apache/casbin-node-casbin)
| [](https://github.com/php-casbin/php-casbin) |
|----------------------------------------------------------------------|-------------------------------------------------------------------|---------------------------------------------------------------------------|------------------------------------------------------------------------|
-| [Casbin](https://github.com/casbin/casbin) |
[jCasbin](https://github.com/casbin/jcasbin) |
[node-Casbin](https://github.com/casbin/node-casbin) |
[PHP-Casbin](https://github.com/php-casbin/php-casbin) |
+| [Casbin](https://github.com/apache/casbin) |
[jCasbin](https://github.com/apache/casbin-jcasbin) |
[node-Casbin](https://github.com/apache/casbin-node-casbin)
| [PHP-Casbin](https://github.com/php-casbin/php-casbin) |
| Production-ready |
Production-ready |
Production-ready |
Production-ready |
-| [](https://github.com/casbin/pycasbin) |
[](https://github.com/casbin/Casbin.NET) |
[](https://github.com/casbin/casbin-cpp) |
[](https://github.com/casbin/casbin-rs) |
+|
[](https://github.com/apache/casbin-pycasbin) |
[](https://github.com/apache/casbin-Casbin.NET)
| [](https://github.com/apache/casbin-cpp) |
[](https://github.com/apache/casbin-rs) |
|------------------------------------------------------------------------|--------------------------------------------------------------------------|--------------------------------------------------------------------|---------------------------------------------------------------------|
-| [PyCasbin](https://github.com/casbin/pycasbin) |
[Casbin.NET](https://github.com/casbin/Casbin.NET) |
[Casbin-CPP](https://github.com/casbin/casbin-cpp) |
[Casbin-RS](https://github.com/casbin/casbin-rs) |
+| [PyCasbin](https://github.com/apache/casbin-pycasbin)
| [Casbin.NET](https://github.com/apache/casbin-Casbin.NET)
| [Casbin-CPP](https://github.com/apache/casbin-cpp) |
[Casbin-RS](https://github.com/apache/casbin-rs) |
| Production-ready |
Production-ready |
Production-ready |
Production-ready |
### Feature Set by Language
diff --git a/docs/Performance.mdx b/docs/Performance.mdx
index 6672f3cd3..cca917351 100644
--- a/docs/Performance.mdx
+++ b/docs/Performance.mdx
@@ -19,7 +19,7 @@ If one enforcer cannot keep up (e.g. 10k+ req/s):
With millions of rules, enforcement and load time can suffer:
-1. **Model and policy design** — Prefer RBAC and shared defaults so most
tenants use a small rule set (e.g. < 100 rules); override only where needed.
See [GitHub
#681](https://github.com/casbin/casbin/issues/681#issuecomment-763801583) for
discussion.
+1. **Model and policy design** — Prefer RBAC and shared defaults so most
tenants use a small rule set (e.g. < 100 rules); override only where needed.
See [GitHub
#681](https://github.com/apache/casbin/issues/681#issuecomment-763801583) for
discussion.
2. **Policy sharding** — Load only the rules each enforcer needs (e.g. per
tenant or per domain) via [Policy subset loading](/docs/policy-subset-loading).
3. **RBAC over direct user permissions** — Assign permissions to roles; Casbin
caches the role tree for O(1) role lookups and fewer policy rules.
diff --git a/docs/PolicyStorage.mdx b/docs/PolicyStorage.mdx
index c6afdf8da..ce60cd77f 100644
--- a/docs/PolicyStorage.mdx
+++ b/docs/PolicyStorage.mdx
@@ -12,7 +12,7 @@ Policy storage in Casbin is handled by
[adapters](/docs/adapters). The enforcer
Using a CSV file is the simplest option and works well for development and
examples.
-Example:
[examples/rbac_policy.csv](https://github.com/casbin/casbin/blob/master/examples/rbac_policy.csv)
+Example:
[examples/rbac_policy.csv](https://github.com/apache/casbin/blob/master/examples/rbac_policy.csv)
```csv
p, alice, data1, read
@@ -37,7 +37,7 @@ p, alice, data, "r.act in (""get"", ""post"")"
--correct
p, alice, data, "r.act in ("get", "post")" --incorrect (you should
use "" to escape "")
```
-See [casbin#886](https://github.com/casbin/casbin/issues/886).
+See [casbin#886](https://github.com/apache/casbin/issues/886).
:::
## Adapter API
diff --git a/docs/PriorityModel.mdx b/docs/PriorityModel.mdx
index c286f34c9..83a383b36 100644
--- a/docs/PriorityModel.mdx
+++ b/docs/PriorityModel.mdx
@@ -19,10 +19,10 @@ e = priority(p.eft) || deny
## Explicit priority (numeric field)
-Add a **priority** field to the policy; **lower** number = **higher**
priority. Non-numeric values are treated as lowest priority. See
[casbin#550](https://github.com/casbin/casbin/issues/550).
+Add a **priority** field to the policy; **lower** number = **higher**
priority. Non-numeric values are treated as lowest priority. See
[casbin#550](https://github.com/apache/casbin/issues/550).
:::info Custom priority field
-The default priority field name is `priority`. For another name (e.g.
`customized_priority`), call `e.SetFieldIndex("p", constant.PriorityIndex,
index)` after init and reload policy. Example:
[TestCustomizedFieldIndex](https://github.com/casbin/casbin/pull/1044).
+The default priority field name is `priority`. For another name (e.g.
`customized_priority`), call `e.SetFieldIndex("p", constant.PriorityIndex,
index)` after init and reload policy. Example:
[TestCustomizedFieldIndex](https://github.com/apache/casbin/pull/1044).
:::
Example with explicit priority in policy:
@@ -98,7 +98,7 @@ bob, data2, write --> true // because bob has the role of
`data2_allow_group` wh
## Subject priority (role/user hierarchy)
-Use `subjectPriority(p.eft)` so that priority comes from the **role
hierarchy**: leaves (e.g. end users) have higher priority than inner roles. The
hierarchy must be **trees**, not graphs; if a user has multiple roles, they
should be at the same depth in each tree. Same-level ties are broken by policy
order. See [casbin#833](https://github.com/casbin/casbin/pull/833),
[casbin#831](https://github.com/casbin/casbin/issues/831).
+Use `subjectPriority(p.eft)` so that priority comes from the **role
hierarchy**: leaves (e.g. end users) have higher priority than inner roles. The
hierarchy must be **trees**, not graphs; if a user has multiple roles, they
should be at the same depth in each tree. Same-level ties are broken by policy
order. See [casbin#833](https://github.com/apache/casbin/pull/833),
[casbin#831](https://github.com/apache/casbin/issues/831).
Model:
diff --git a/docs/RBAC.mdx b/docs/RBAC.mdx
index 1eaa9c799..e1a4c8333 100644
--- a/docs/RBAC.mdx
+++ b/docs/RBAC.mdx
@@ -18,7 +18,7 @@ g = _, _
g2 = _, _
```
-Here `g` and `g2` are two role systems; `_, _` means each has two sides (e.g.
user and role). Use only `g` for user roles; add `g2` when resources have roles
too. Examples:
[rbac_model.conf](https://github.com/casbin/casbin/blob/master/examples/rbac_model.conf),
[rbac_with_resource_roles_model.conf](https://github.com/casbin/casbin/blob/master/examples/rbac_with_resource_roles_model.conf).
+Here `g` and `g2` are two role systems; `_, _` means each has two sides (e.g.
user and role). Use only `g` for user roles; add `g2` when resources have roles
too. Examples:
[rbac_model.conf](https://github.com/apache/casbin/blob/master/examples/rbac_model.conf),
[rbac_with_resource_roles_model.conf](https://github.com/apache/casbin/blob/master/examples/rbac_with_resource_roles_model.conf).
User–role (and resource–role) mappings are stored in the policy, for example:
@@ -87,7 +87,7 @@ In Casbin, users and roles are both strings. In flat RBAC (no
role hierarchy), `
## Implicit roles and permissions
-Roles and permissions inherited through the hierarchy (not only direct
assignments) are called **implicit**. Use `GetImplicitRolesForUser()` and
`GetImplicitPermissionsForUser()` to include them; `GetRolesForUser()` and
`GetPermissionsForUser()` return only direct assignments. See [GitHub
#137](https://github.com/casbin/casbin/issues/137).
+Roles and permissions inherited through the hierarchy (not only direct
assignments) are called **implicit**. Use `GetImplicitRolesForUser()` and
`GetImplicitPermissionsForUser()` to include them; `GetRolesForUser()` and
`GetPermissionsForUser()` return only direct assignments. See [GitHub
#137](https://github.com/apache/casbin/issues/137).
## Pattern matching in RBAC
diff --git a/docs/RBACWithDomains.mdx b/docs/RBACWithDomains.mdx
index b88794b85..6dc925c76 100644
--- a/docs/RBACWithDomains.mdx
+++ b/docs/RBACWithDomains.mdx
@@ -61,7 +61,7 @@ With pattern matching (e.g. `keyMatch`) for domains, Casbin
infers the domain to
m = g(r.sub, p.sub, r.tenant) && keyMatch(r.tenant, p.tenant) && r.obj ==
p.obj && r.act == p.act
```
-For domain APIs (e.g. `GetAllUsersByDomain()`) with a **custom** domain token
name or position, set the index after creating the enforcer. Full example:
[rbac_with_domains_model.conf](https://github.com/casbin/casbin/blob/master/examples/rbac_with_domains_model.conf).
+For domain APIs (e.g. `GetAllUsersByDomain()`) with a **custom** domain token
name or position, set the index after creating the enforcer. Full example:
[rbac_with_domains_model.conf](https://github.com/apache/casbin/blob/master/examples/rbac_with_domains_model.conf).
:::info Token name and position
The domain is usually named `dom` and placed second (`sub, dom, obj, act`). In
Go Casbin you can use another name or position; then call `e.SetFieldIndex("p",
constant.DomainIndex, index)` after init so APIs like `GetAllUsersByDomain()`
work correctly.
diff --git a/docs/RBACWithPattern.mdx b/docs/RBACWithPattern.mdx
index 3e556ba69..e68cd465e 100644
--- a/docs/RBACWithPattern.mdx
+++ b/docs/RBACWithPattern.mdx
@@ -100,7 +100,7 @@ await e.addNamedDomainMatchingFunc('g', Util.keyMatch2Func);
</Tabs>
```
-For the meaning of `g(r.sub, p.sub, r.dom)` see [RBAC with
domains](/docs/rbac-with-domains). Full example:
[model_test.go](https://github.com/casbin/casbin/blob/dbdb6cbe2e7a80863e4951f9ff36da07fef01b75/model_test.go#L278-L307).
+For the meaning of `g(r.sub, p.sub, r.dom)` see [RBAC with
domains](/docs/rbac-with-domains). Full example:
[model_test.go](https://github.com/apache/casbin/blob/dbdb6cbe2e7a80863e4951f9ff36da07fef01b75/model_test.go#L278-L307).
:::note
diff --git a/docs/RoleManagers.mdx b/docs/RoleManagers.mdx
index 8ceae5400..bc35be13a 100644
--- a/docs/RoleManagers.mdx
+++ b/docs/RoleManagers.mdx
@@ -22,7 +22,7 @@ import {RoleManagerPythonData} from
"@site/src/tableData/RoleManagerData/RoleMan
<RoleManagerMDTable data={RoleManagerGoData}></RoleManagerMDTable>
```
-All role managers must implement the
[RoleManager](https://github.com/casbin/casbin/blob/master/rbac/role_manager.go)
interface. Use the [Session Role
Manager](https://github.com/casbin/session-role-manager) as a reference
implementation.
+All role managers must implement the
[RoleManager](https://github.com/apache/casbin/blob/master/rbac/role_manager.go)
interface. Use the [Session Role
Manager](https://github.com/apache/casbin-session-role-manager) as a reference
implementation.
```mdx-code-block
</TabItem>
@@ -31,7 +31,7 @@ All role managers must implement the
[RoleManager](https://github.com/casbin/cas
<RoleManagerMDTable data={RoleManagerJavaData}></RoleManagerMDTable>
```
-All role managers must implement the
[RoleManager](https://github.com/casbin/jcasbin/blob/master/src/main/java/org/casbin/jcasbin/rbac/RoleManager.java)
interface. Use the [Default Role
Manager](https://github.com/casbin/jcasbin/blob/master/src/main/java/org/casbin/jcasbin/rbac/DefaultRoleManager.java)
as a reference implementation.
+All role managers must implement the
[RoleManager](https://github.com/apache/casbin-jcasbin/blob/master/src/main/java/org/casbin/jcasbin/rbac/RoleManager.java)
interface. Use the [Default Role
Manager](https://github.com/apache/casbin-jcasbin/blob/master/src/main/java/org/casbin/jcasbin/rbac/DefaultRoleManager.java)
as a reference implementation.
```mdx-code-block
</TabItem>
@@ -40,7 +40,7 @@ All role managers must implement the
[RoleManager](https://github.com/casbin/jca
<RoleManagerMDTable data={RoleManagerNodejsData}></RoleManagerMDTable>
```
-All role managers must implement the
[RoleManager](https://github.com/casbin/node-casbin/blob/master/src/rbac/roleManager.ts)
interface. Use the [Default Role
Manager](https://github.com/casbin/node-casbin/blob/master/src/rbac/defaultRoleManager.ts)
as a reference implementation.
+All role managers must implement the
[RoleManager](https://github.com/apache/casbin-node-casbin/blob/master/src/rbac/roleManager.ts)
interface. Use the [Default Role
Manager](https://github.com/apache/casbin-node-casbin/blob/master/src/rbac/defaultRoleManager.ts)
as a reference implementation.
```mdx-code-block
</TabItem>
@@ -58,7 +58,7 @@ All role managers must implement the
[RoleManager](https://github.com/php-casbin
<RoleManagerMDTable data={RoleManagerPythonData}></RoleManagerMDTable>
```
-All role managers must implement the
[RoleManager](https://github.com/casbin/pycasbin/blob/master/casbin/rbac/role_manager.py)
interface. Use the [Default Role
Manager](https://github.com/casbin/pycasbin/blob/master/casbin/rbac/default_role_manager/role_manager.py)
as a reference implementation.
+All role managers must implement the
[RoleManager](https://github.com/apache/casbin-pycasbin/blob/master/casbin/rbac/role_manager.py)
interface. Use the [Default Role
Manager](https://github.com/apache/casbin-pycasbin/blob/master/casbin/rbac/default_role_manager/role_manager.py)
as a reference implementation.
```mdx-code-block
</TabItem>
diff --git a/docs/Service.mdx b/docs/Service.mdx
index e10c27512..17ed45deb 100644
--- a/docs/Service.mdx
+++ b/docs/Service.mdx
@@ -10,6 +10,6 @@ You can run Casbin as a **remote service** and call it via
gRPC or HTTP instead
| Project | Description |
|--------|--------------|
-| [Casbin Server](https://github.com/casbin/casbin-server) | Official gRPC
service exposing Management API and RBAC API. |
+| [Casbin Server](https://github.com/apache/casbin-server) | Official gRPC
service exposing Management API and RBAC API. |
| [middleware-acl](https://github.com/luk4z7/middleware-acl) | RESTful ACL
middleware built on Casbin. |
| [auth-server](https://github.com/ZettaAI/auth-server) | Auth server example
using Casbin. |
diff --git a/docs/SupportedModels.mdx b/docs/SupportedModels.mdx
index 6a520b91c..13d0f64b3 100644
--- a/docs/SupportedModels.mdx
+++ b/docs/SupportedModels.mdx
@@ -31,23 +31,23 @@ Casbin supports the following access control models and
patterns:
| Model | Model file
| Policy file
|
|---------------------------|----------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------|
-| ACL |
[basic_model.conf](https://github.com/casbin/casbin/blob/master/examples/basic_model.conf)
|
[basic_policy.csv](https://github.com/casbin/casbin/blob/master/examples/basic_policy.csv)
|
-| ACL with superuser |
[basic_with_root_model.conf](https://github.com/casbin/casbin/blob/master/examples/basic_with_root_model.conf)
|
[basic_policy.csv](https://github.com/casbin/casbin/blob/master/examples/basic_policy.csv)
|
-| ACL without users |
[basic_without_users_model.conf](https://github.com/casbin/casbin/blob/master/examples/basic_without_users_model.conf)
|
[basic_without_users_policy.csv](https://github.com/casbin/casbin/blob/master/examples/basic_without_users_policy.csv)
|
-| ACL without resources |
[basic_without_resources_model.conf](https://github.com/casbin/casbin/blob/master/examples/basic_without_resources_model.conf)
|
[basic_without_resources_policy.csv](https://github.com/casbin/casbin/blob/master/examples/basic_without_resources_policy.csv)
|
-| RBAC |
[rbac_model.conf](https://github.com/casbin/casbin/blob/master/examples/rbac_model.conf)
|
[rbac_policy.csv](https://github.com/casbin/casbin/blob/master/examples/rbac_policy.csv)
|
-| RBAC with resource roles |
[rbac_with_resource_roles_model.conf](https://github.com/casbin/casbin/blob/master/examples/rbac_with_resource_roles_model.conf)
|
[rbac_with_resource_roles_policy.csv](https://github.com/casbin/casbin/blob/master/examples/rbac_with_resource_roles_policy.csv)
|
-| RBAC with domains/tenants |
[rbac_with_domains_model.conf](https://github.com/casbin/casbin/blob/master/examples/rbac_with_domains_model.conf)
|
[rbac_with_domains_policy.csv](https://github.com/casbin/casbin/blob/master/examples/rbac_with_domains_policy.csv)
|
-| ReBAC |
[rebac_model.conf](https://github.com/casbin/casbin/blob/master/examples/rebac_model.conf)
|
[rebac_policy.csv](https://github.com/casbin/casbin/blob/master/examples/rebac_policy.csv)
|
-| ABAC |
[abac_model.conf](https://github.com/casbin/casbin/blob/master/examples/abac_model.conf)
| N/A
|
-| BLP |
[blp_model.conf](https://github.com/casbin/casbin/blob/master/examples/blp_model.conf)
| N/A
|
-| Biba |
[biba_model.conf](https://github.com/casbin/casbin/blob/master/examples/biba_model.conf)
| N/A
|
-| LBAC |
[lbac_model.conf](https://github.com/casbin/casbin/blob/master/examples/lbac_model.conf)
| N/A
|
-| OrBAC |
[orbac_model.conf](https://github.com/casbin/casbin/blob/master/examples/orbac_model.conf)
|
[orbac_policy.csv](https://github.com/casbin/casbin/blob/master/examples/orbac_policy.csv)
|
-| IP Match |
[ipmatch_model.conf](https://github.com/casbin/casbin/blob/master/examples/ipmatch_model.conf)
|
[ipmatch_policy.csv](https://github.com/casbin/casbin/blob/master/examples/ipmatch_policy.csv)
|
-| RESTful |
[keymatch_model.conf](https://github.com/casbin/casbin/blob/master/examples/keymatch_model.conf)
|
[keymatch_policy.csv](https://github.com/casbin/casbin/blob/master/examples/keymatch_policy.csv)
|
-| Deny-override |
[rbac_with_not_deny_model.conf](https://github.com/casbin/casbin/blob/master/examples/rbac_with_not_deny_model.conf)
|
[rbac_with_deny_policy.csv](https://github.com/casbin/casbin/blob/master/examples/rbac_with_deny_policy.csv)
|
-| Allow-and-deny |
[rbac_with_deny_model.conf](https://github.com/casbin/casbin/blob/master/examples/rbac_with_deny_model.conf)
|
[rbac_with_deny_policy.csv](https://github.com/casbin/casbin/blob/master/examples/rbac_with_deny_policy.csv)
|
-| Priority |
[priority_model.conf](https://github.com/casbin/casbin/blob/master/examples/priority_model.conf)
|
[priority_policy.csv](https://github.com/casbin/casbin/blob/master/examples/priority_policy.csv)
|
-| Explicit Priority |
[priority_model_explicit](https://github.com/casbin/casbin/blob/master/examples/priority_model_explicit.conf)
|
[priority_policy_explicit.csv](https://github.com/casbin/casbin/blob/master/examples/priority_policy_explicit.csv)
|
-| Subject-Priority |
[subject_priority_model.conf](https://github.com/casbin/casbin/blob/master/examples/subject_priority_model.conf)
|
[subject_priority_policyl.csv](https://github.com/casbin/casbin/blob/master/examples/subject_priority_policy.csv)
|
+| ACL |
[basic_model.conf](https://github.com/apache/casbin/blob/master/examples/basic_model.conf)
|
[basic_policy.csv](https://github.com/apache/casbin/blob/master/examples/basic_policy.csv)
|
+| ACL with superuser |
[basic_with_root_model.conf](https://github.com/apache/casbin/blob/master/examples/basic_with_root_model.conf)
|
[basic_policy.csv](https://github.com/apache/casbin/blob/master/examples/basic_policy.csv)
|
+| ACL without users |
[basic_without_users_model.conf](https://github.com/apache/casbin/blob/master/examples/basic_without_users_model.conf)
|
[basic_without_users_policy.csv](https://github.com/apache/casbin/blob/master/examples/basic_without_users_policy.csv)
|
+| ACL without resources |
[basic_without_resources_model.conf](https://github.com/apache/casbin/blob/master/examples/basic_without_resources_model.conf)
|
[basic_without_resources_policy.csv](https://github.com/apache/casbin/blob/master/examples/basic_without_resources_policy.csv)
|
+| RBAC |
[rbac_model.conf](https://github.com/apache/casbin/blob/master/examples/rbac_model.conf)
|
[rbac_policy.csv](https://github.com/apache/casbin/blob/master/examples/rbac_policy.csv)
|
+| RBAC with resource roles |
[rbac_with_resource_roles_model.conf](https://github.com/apache/casbin/blob/master/examples/rbac_with_resource_roles_model.conf)
|
[rbac_with_resource_roles_policy.csv](https://github.com/apache/casbin/blob/master/examples/rbac_with_resource_roles_policy.csv)
|
+| RBAC with domains/tenants |
[rbac_with_domains_model.conf](https://github.com/apache/casbin/blob/master/examples/rbac_with_domains_model.conf)
|
[rbac_with_domains_policy.csv](https://github.com/apache/casbin/blob/master/examples/rbac_with_domains_policy.csv)
|
+| ReBAC |
[rebac_model.conf](https://github.com/apache/casbin/blob/master/examples/rebac_model.conf)
|
[rebac_policy.csv](https://github.com/apache/casbin/blob/master/examples/rebac_policy.csv)
|
+| ABAC |
[abac_model.conf](https://github.com/apache/casbin/blob/master/examples/abac_model.conf)
| N/A
|
+| BLP |
[blp_model.conf](https://github.com/apache/casbin/blob/master/examples/blp_model.conf)
| N/A
|
+| Biba |
[biba_model.conf](https://github.com/apache/casbin/blob/master/examples/biba_model.conf)
| N/A
|
+| LBAC |
[lbac_model.conf](https://github.com/apache/casbin/blob/master/examples/lbac_model.conf)
| N/A
|
+| OrBAC |
[orbac_model.conf](https://github.com/apache/casbin/blob/master/examples/orbac_model.conf)
|
[orbac_policy.csv](https://github.com/apache/casbin/blob/master/examples/orbac_policy.csv)
|
+| IP Match |
[ipmatch_model.conf](https://github.com/apache/casbin/blob/master/examples/ipmatch_model.conf)
|
[ipmatch_policy.csv](https://github.com/apache/casbin/blob/master/examples/ipmatch_policy.csv)
|
+| RESTful |
[keymatch_model.conf](https://github.com/apache/casbin/blob/master/examples/keymatch_model.conf)
|
[keymatch_policy.csv](https://github.com/apache/casbin/blob/master/examples/keymatch_policy.csv)
|
+| Deny-override |
[rbac_with_not_deny_model.conf](https://github.com/apache/casbin/blob/master/examples/rbac_with_not_deny_model.conf)
|
[rbac_with_deny_policy.csv](https://github.com/apache/casbin/blob/master/examples/rbac_with_deny_policy.csv)
|
+| Allow-and-deny |
[rbac_with_deny_model.conf](https://github.com/apache/casbin/blob/master/examples/rbac_with_deny_model.conf)
|
[rbac_with_deny_policy.csv](https://github.com/apache/casbin/blob/master/examples/rbac_with_deny_policy.csv)
|
+| Priority |
[priority_model.conf](https://github.com/apache/casbin/blob/master/examples/priority_model.conf)
|
[priority_policy.csv](https://github.com/apache/casbin/blob/master/examples/priority_policy.csv)
|
+| Explicit Priority |
[priority_model_explicit](https://github.com/apache/casbin/blob/master/examples/priority_model_explicit.conf)
|
[priority_policy_explicit.csv](https://github.com/apache/casbin/blob/master/examples/priority_policy_explicit.csv)
|
+| Subject-Priority |
[subject_priority_model.conf](https://github.com/apache/casbin/blob/master/examples/subject_priority_model.conf)
|
[subject_priority_policyl.csv](https://github.com/apache/casbin/blob/master/examples/subject_priority_policy.csv)
|
diff --git a/docs/SyntaxForModels.mdx b/docs/SyntaxForModels.mdx
index 1e6625a7f..d21c3be80 100644
--- a/docs/SyntaxForModels.mdx
+++ b/docs/SyntaxForModels.mdx
@@ -48,7 +48,7 @@ Each line in the policy file is one rule. The first token is
the policy type (`p
```
:::tip
-Policy rule elements are always treated as strings. See
[casbin/casbin#113](https://github.com/casbin/casbin/issues/113) for discussion.
+Policy rule elements are always treated as strings. See
[casbin/casbin#113](https://github.com/apache/casbin/issues/113) for discussion.
:::
## Policy Effect
@@ -322,7 +322,7 @@ public class EnforceContext {
</Tabs>
```
-Example usage (see the
[model](https://github.com/casbin/casbin/blob/master/examples/multiple_policy_definitions_model.conf)
and
[policy](https://github.com/casbin/casbin/blob/master/examples/multiple_policy_definitions_policy.csv)
examples):
+Example usage (see the
[model](https://github.com/apache/casbin/blob/master/examples/multiple_policy_definitions_model.conf)
and
[policy](https://github.com/apache/casbin/blob/master/examples/multiple_policy_definitions_policy.csv)
examples):
```mdx-code-block
<Tabs groupId="langs">
@@ -374,7 +374,7 @@ enforceContext.seteType("e");
// Don't pass in EnforceContext; the default is r, p, e, m
e.enforce("alice", "data2", "read"); // true
// Pass in EnforceContext
-// TestEvalRule is located in
https://github.com/casbin/jcasbin/blob/master/src/test/java/org/casbin/jcasbin/main/AbacAPIUnitTest.java#L56
+// TestEvalRule is located in
https://github.com/apache/casbin-jcasbin/blob/master/src/test/java/org/casbin/jcasbin/main/AbacAPIUnitTest.java#L56
e.enforce(enforceContext, new AbacAPIUnitTest.TestEvalRule("alice", 70),
"/data1", "read"); // false
e.enforce(enforceContext, new AbacAPIUnitTest.TestEvalRule("alice", 30),
"/data1", "read"); // true
```
@@ -388,7 +388,7 @@ e.enforce(enforceContext, new
AbacAPIUnitTest.TestEvalRule("alice", 30), "/data1
The `in` operator checks whether the right-hand array contains the left-hand
value (using `==` equality, no type coercion). The left side can be any value;
the right side must be an array of the same type. In Go, arrays must be
`[]interface{}`.
-Reference examples:
[rbac_model_matcher_using_in_op](https://github.com/casbin/casbin/blob/277c1a2b85698272f764d71a94d2595a8d425915/examples/rbac_model_matcher_using_in_op.conf),
[keyget2_model](https://github.com/casbin/casbin/blob/277c1a2b85698272f764d71a94d2595a8d425915/examples/keyget2_model.conf),
and
[keyget_model](https://github.com/casbin/casbin/blob/277c1a2b85698272f764d71a94d2595a8d425915/examples/keyget_model.conf).
+Reference examples:
[rbac_model_matcher_using_in_op](https://github.com/apache/casbin/blob/277c1a2b85698272f764d71a94d2595a8d425915/examples/rbac_model_matcher_using_in_op.conf),
[keyget2_model](https://github.com/apache/casbin/blob/277c1a2b85698272f764d71a94d2595a8d425915/examples/keyget2_model.conf),
and
[keyget_model](https://github.com/apache/casbin/blob/277c1a2b85698272f764d71a94d2595a8d425915/examples/keyget_model.conf).
Example:
@@ -412,7 +412,7 @@ Expression evaluators by implementation:
| Implementation | Language | Expression Evaluator
|
|----------------|----------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| Casbin | Golang |
[https://github.com/casbin/govaluate](https://github.com/casbin/govaluate)
|
+| Casbin | Golang |
[https://github.com/apache/casbin-govaluate](https://github.com/apache/casbin-govaluate)
|
| jCasbin | Java |
[https://github.com/killme2008/aviatorscript](https://github.com/killme2008/aviatorscript)
|
| Node-Casbin | Node.js |
[https://github.com/donmccurdy/expression-eval](https://github.com/donmccurdy/expression-eval)
|
| PHP-Casbin | PHP |
[https://github.com/symfony/expression-language](https://github.com/symfony/expression-language)
|
diff --git a/docs/UCON.mdx b/docs/UCON.mdx
index 176f2043d..fd8180cfc 100644
--- a/docs/UCON.mdx
+++ b/docs/UCON.mdx
@@ -9,11 +9,11 @@ authors: [nodece]
## Overview
-**UCON (Usage Control)** extends access control with **authorizations (A)**,
**obligations (B)**, and **conditions (C)**. It supports **continuous**
enforcement during use (not only at access time) and **mutable** attributes.
Casbin does not implement UCON in the core; use the
[casbin-ucon](https://github.com/casbin/casbin-ucon) extension for
session-based usage control.
+**UCON (Usage Control)** extends access control with **authorizations (A)**,
**obligations (B)**, and **conditions (C)**. It supports **continuous**
enforcement during use (not only at access time) and **mutable** attributes.
Casbin does not implement UCON in the core; use the
[casbin-ucon](https://github.com/apache/casbin-ucon) extension for
session-based usage control.
## Model & Policy
-> **Note**: Casbin does not support UCON directly in its core library.
Instead, UCON functionality is provided through the extension library
[casbin-ucon](https://github.com/casbin/casbin-ucon), which adds session-based
access control with conditions, obligations, and continuous monitoring
capabilities. The extension can use the same models and policies supported by
the Casbin core.
+> **Note**: Casbin does not support UCON directly in its core library.
Instead, UCON functionality is provided through the extension library
[casbin-ucon](https://github.com/apache/casbin-ucon), which adds session-based
access control with conditions, obligations, and continuous monitoring
capabilities. The extension can use the same models and policies supported by
the Casbin core.
### model
@@ -64,7 +64,7 @@ The UCON model is particularly valuable in:
## Implementation with casbin-ucon
-To implement UCON in your Casbin-based application, use the
[casbin-ucon](https://github.com/casbin/casbin-ucon) extension library:
+To implement UCON in your Casbin-based application, use the
[casbin-ucon](https://github.com/apache/casbin-ucon) extension library:
```bash
go get github.com/casbin/casbin-ucon
@@ -165,4 +165,4 @@ func main() {
## References
-For complete API documentation, detailed usage, and latest updates about
casbin-ucon, refer to [casbin-ucon](https://github.com/casbin/casbin-ucon).
+For complete API documentation, detailed usage, and latest updates about
casbin-ucon, refer to [casbin-ucon](https://github.com/apache/casbin-ucon).
diff --git a/docusaurus.config.js b/docusaurus.config.js
index 32a15d5ec..9b329b65d 100644
--- a/docusaurus.config.js
+++ b/docusaurus.config.js
@@ -16,8 +16,8 @@ module.exports = {
},
},
favicon: "img/favicon.png",
- organizationName: "casbin", // Usually your GitHub org/user name.
- projectName: "casbin.io", // Usually your repo name.
+ organizationName: "apache", // Usually your GitHub org/user name.
+ projectName: "casbin-website", // Usually your repo name.
themeConfig: {
metadata: [
{
@@ -158,7 +158,7 @@ module.exports = {
],
},
{
- href: "https://github.com/casbin/casbin",
+ href: "https://github.com/apache/casbin",
position: "right",
className: "header-github-link",
"aria-label": "GitHub repository",
diff --git a/scripts/generate-homepage-release.js
b/scripts/generate-homepage-release.js
index 17eef6abb..468df747a 100644
--- a/scripts/generate-homepage-release.js
+++ b/scripts/generate-homepage-release.js
@@ -11,7 +11,7 @@ const fallbackUrl =
`https://github.com/apache/casbin/releases/tag/${fallbackTag
async function fetchLatestRelease() {
const data = await fetchGitHubJson(
- "https://api.github.com/repos/casbin/casbin/releases/latest",
+ "https://api.github.com/repos/apache/casbin/releases/latest",
"casbin-website-homepage-release",
"latest homepage release"
);
diff --git a/src/components/FooterMoreBadges/badges.json
b/src/components/FooterMoreBadges/badges.json
index d26952cd5..9a686be7a 100644
--- a/src/components/FooterMoreBadges/badges.json
+++ b/src/components/FooterMoreBadges/badges.json
@@ -3,19 +3,19 @@
"label": "Casbin",
"owner": "casbin",
"repo": "casbin",
- "href": "https://github.com/casbin/casbin"
+ "href": "https://github.com/apache/casbin"
},
{
"label": "jCasbin",
"owner": "casbin",
"repo": "jcasbin",
- "href": "https://github.com/casbin/jcasbin"
+ "href": "https://github.com/apache/casbin-jcasbin"
},
{
"label": "Node-Casbin",
"owner": "casbin",
"repo": "node-casbin",
- "href": "https://github.com/casbin/node-casbin"
+ "href": "https://github.com/apache/casbin-node-casbin"
},
{
"label": "PHP-Casbin",
@@ -27,24 +27,24 @@
"label": "PyCasbin",
"owner": "casbin",
"repo": "pycasbin",
- "href": "https://github.com/casbin/pycasbin"
+ "href": "https://github.com/apache/casbin-pycasbin"
},
{
"label": "Casbin.NET",
"owner": "casbin",
"repo": "Casbin.NET",
- "href": "https://github.com/casbin/Casbin.NET"
+ "href": "https://github.com/apache/casbin-Casbin.NET"
},
{
"label": "Casbin-CPP",
"owner": "casbin",
"repo": "casbin-cpp",
- "href": "https://github.com/casbin/casbin-cpp"
+ "href": "https://github.com/apache/casbin-cpp"
},
{
"label": "Casbin-RS",
"owner": "casbin",
"repo": "casbin-rs",
- "href": "https://github.com/casbin/casbin-rs"
+ "href": "https://github.com/apache/casbin-rs"
}
]
diff --git a/src/components/LanguageIntegration/index.js
b/src/components/LanguageIntegration/index.js
index b78eae596..d83926037 100644
--- a/src/components/LanguageIntegration/index.js
+++ b/src/components/LanguageIntegration/index.js
@@ -11,22 +11,22 @@ const languages = [
{
name: "Java",
icon: "/img/langs/jee-3.svg",
- url: "https://github.com/casbin/jcasbin",
+ url: "https://github.com/apache/casbin-jcasbin",
},
{
name: "C/C++",
icon: "/img/langs/c.svg",
- url: "https://github.com/casbin/casbin-cpp",
+ url: "https://github.com/apache/casbin-cpp",
},
{
name: "Node.js",
icon: "/img/langs/nodejs-1.svg",
- url: "https://github.com/casbin/node-casbin",
+ url: "https://github.com/apache/casbin-node-casbin",
},
{
name: "Front-end JavaScript",
icon: "/img/langs/logo-javascript.svg",
- url: "https://github.com/casbin/casbin.js",
+ url: "https://github.com/apache/casbin-casbin.js",
},
{
name: "PHP",
@@ -41,12 +41,12 @@ const languages = [
{
name: "Python",
icon: "/img/langs/python-5.svg",
- url: "https://github.com/casbin/pycasbin",
+ url: "https://github.com/apache/casbin-pycasbin",
},
{
name: ".NET (C#)",
icon: "/img/langs/dotnet-logo.svg",
- url: "https://github.com/casbin/Casbin.NET",
+ url: "https://github.com/apache/casbin-Casbin.NET",
},
{
name: "Delphi",
@@ -56,7 +56,7 @@ const languages = [
{
name: "Rust",
icon: "/img/langs/rust.svg",
- url: "https://github.com/casbin/casbin-rs",
+ url: "https://github.com/apache/casbin-rs",
},
{
name: "Ruby",
@@ -66,22 +66,22 @@ const languages = [
{
name: "Swift (Objective-C)",
icon: "/img/langs/swift-15.svg",
- url: "https://github.com/casbin/SwiftCasbin",
+ url: "https://github.com/apache/casbin-SwiftCasbin",
},
{
name: "Lua (OpenResty, Kong, APISIX)",
icon: "/img/langs/lua-5.svg",
- url: "https://github.com/casbin/lua-casbin",
+ url: "https://github.com/apache/casbin-lua-casbin",
},
{
name: "Dart (Flutter)",
icon: "/img/langs/dart.svg",
- url: "https://github.com/casbin/dart-casbin",
+ url: "https://github.com/apache/casbin-dart-casbin",
},
{
name: "Elixir",
icon: "/img/langs/elixir-lang-icon.svg",
- url: "https://github.com/casbin/casbin-ex",
+ url: "https://github.com/apache/casbin-ex",
},
{
name: "Cloud Native",
diff --git a/src/pages/help.js b/src/pages/help.js
index 48c3dc5ca..ef25a7d5d 100644
--- a/src/pages/help.js
+++ b/src/pages/help.js
@@ -34,17 +34,17 @@ function Hello() {
<Translate
values={{
repoLink: (
- <a href="https://github.com/casbin/casbin">
+ <a href="https://github.com/apache/casbin">
<Translate>GitHub repo</Translate>
</a>
),
issueLink: (
- <a href="https://github.com/casbin/casbin/issues">
+ <a href="https://github.com/apache/casbin/issues">
<Translate>issues</Translate>
</a>
),
prLink: (
- <a href="https://github.com/casbin/casbin/pulls">
+ <a href="https://github.com/apache/casbin/pulls">
<Translate>pull requests</Translate>
</a>
),
diff --git a/src/tableData/AdapterData/AdapterGoData.js
b/src/tableData/AdapterData/AdapterGoData.js
index c62ad740a..ff4448f2f 100644
--- a/src/tableData/AdapterData/AdapterGoData.js
+++ b/src/tableData/AdapterData/AdapterGoData.js
@@ -27,7 +27,7 @@ export const AdapterGoData = [
image: "/img/ecosystem/SQL.png",
},
{
- title: "[Xorm Adapter](https://github.com/casbin/xorm-adapter)",
+ title: "[Xorm Adapter](https://github.com/apache/casbin-xorm-adapter)",
type: "ORM",
author: "Casbin",
autoSave: "✅",
@@ -36,7 +36,7 @@ export const AdapterGoData = [
image: "/img/ecosystem/SQL.png",
},
{
- title: "[GORM Adapter](https://github.com/casbin/gorm-adapter)",
+ title: "[GORM Adapter](https://github.com/apache/casbin-gorm-adapter)",
type: "ORM",
author: "Casbin",
autoSave: "✅",
@@ -45,7 +45,7 @@ export const AdapterGoData = [
image: "/img/ecosystem/SQL.png",
},
{
- title: "[GORM Adapter Ex](https://github.com/casbin/gorm-adapter-ex)",
+ title: "[GORM Adapter
Ex](https://github.com/apache/casbin-gorm-adapter-ex)",
type: "ORM",
author: "Casbin",
autoSave: "✅",
@@ -55,7 +55,7 @@ export const AdapterGoData = [
},
{
- title: "[Ent Adapter](https://github.com/casbin/ent-adapter)",
+ title: "[Ent Adapter](https://github.com/apache/casbin-ent-adapter)",
type: "ORM",
author: "Casbin",
autoSave: "✅",
@@ -64,7 +64,7 @@ export const AdapterGoData = [
image: "/img/ecosystem/SQL.png",
},
{
- title: "[Beego ORM Adapter](https://github.com/casbin/beego-orm-adapter)",
+ title: "[Beego ORM
Adapter](https://github.com/apache/casbin-beego-orm-adapter)",
type: "ORM",
author: "Casbin",
autoSave: "✅",
@@ -146,7 +146,7 @@ export const AdapterGoData = [
},
{
title:
- "[Filtered PostgreSQL
Adapter](https://github.com/casbin/casbin-pg-adapter)",
+ "[Filtered PostgreSQL
Adapter](https://github.com/apache/casbin-pg-adapter)",
type: "SQL",
author: "Casbin",
autoSave: "✅",
@@ -197,7 +197,7 @@ export const AdapterGoData = [
image: "/img/ecosystem/rqlite.png",
},
{
- title: "[MongoDB Adapter](https://github.com/casbin/mongodb-adapter)",
+ title: "[MongoDB
Adapter](https://github.com/apache/casbin-mongodb-adapter)",
type: "NoSQL",
author: "Casbin",
autoSave: "✅",
@@ -215,7 +215,7 @@ export const AdapterGoData = [
image: "/img/ecosystem/rethinkDB.png",
},
{
- title: "[Cassandra Adapter](https://github.com/casbin/cassandra-adapter)",
+ title: "[Cassandra
Adapter](https://github.com/apache/casbin-cassandra-adapter)",
type: "NoSQL",
author: "Casbin",
autoSave: "❌",
@@ -315,7 +315,7 @@ export const AdapterGoData = [
image: "/img/ecosystem/firestore.jpeg",
},
{
- title: "[Redis Adapter (Redigo)](https://github.com/casbin/redis-adapter)",
+ title: "[Redis Adapter
(Redigo)](https://github.com/apache/casbin-redis-adapter)",
type: "KV store",
author: "Casbin",
autoSave: "✅",
@@ -365,7 +365,7 @@ export const AdapterGoData = [
image: "/img/ecosystem/badger.png",
},
{
- title: "[Protobuf Adapter](https://github.com/casbin/protobuf-adapter)",
+ title: "[Protobuf
Adapter](https://github.com/apache/casbin-protobuf-adapter)",
type: "Stream",
author: "Casbin",
autoSave: "❌",
@@ -374,7 +374,7 @@ export const AdapterGoData = [
image: "/img/ecosystem/protobuf.png",
},
{
- title: "[JSON Adapter](https://github.com/casbin/json-adapter)",
+ title: "[JSON Adapter](https://github.com/apache/casbin-json-adapter)",
type: "String",
author: "Casbin",
autoSave: "❌",
diff --git a/src/tableData/AdapterData/AdapterNodejsData.js
b/src/tableData/AdapterData/AdapterNodejsData.js
index e377fd17f..243c6c5f6 100644
--- a/src/tableData/AdapterData/AdapterNodejsData.js
+++ b/src/tableData/AdapterData/AdapterNodejsData.js
@@ -19,7 +19,7 @@ export const AdapterNodejsData = [
},
{
title:
- "[String Adapter
(built-in)](https://github.com/casbin/node-casbin/blob/master/src/persist/stringAdapter.ts)",
+ "[String Adapter
(built-in)](https://github.com/apache/casbin-node-casbin/blob/master/src/persist/stringAdapter.ts)",
type: "String",
author: "[@calebfaruki](https://github.com/calebfaruki)",
autoSave: "❌",
diff --git a/src/tableData/AdapterData/AdapterSwiftData.js
b/src/tableData/AdapterData/AdapterSwiftData.js
index 43a459fac..ccabdea56 100644
--- a/src/tableData/AdapterData/AdapterSwiftData.js
+++ b/src/tableData/AdapterData/AdapterSwiftData.js
@@ -10,7 +10,7 @@ export const AdapterSwiftData = [
},
{
title:
- "[Memory Adapter
(built-in)](https://github.com/casbin/SwiftCasbin/blob/master/Sources/Casbin/Adapter/MemoryAdapter.swift)",
+ "[Memory Adapter
(built-in)](https://github.com/apache/casbin-SwiftCasbin/blob/master/Sources/Casbin/Adapter/MemoryAdapter.swift)",
type: "Memory",
author: "Casbin",
autoSave: "❌",
diff --git a/src/tableData/DispatcherData/DispatcherGoData.js
b/src/tableData/DispatcherData/DispatcherGoData.js
index 12206e6da..8cf54c45e 100644
--- a/src/tableData/DispatcherData/DispatcherGoData.js
+++ b/src/tableData/DispatcherData/DispatcherGoData.js
@@ -1,7 +1,7 @@
export const DispatcherGoData = [
{
title:
- "[Hashicorp Raft
Dispatcher](https://github.com/casbin/hraft-dispatcher)",
+ "[Hashicorp Raft
Dispatcher](https://github.com/apache/casbin-hraft-dispatcher)",
type: "Raft",
author: "Casbin",
description:
diff --git a/src/tableData/MiddlewareData/MiddlewareGoData.js
b/src/tableData/MiddlewareData/MiddlewareGoData.js
index 2c3e4b292..4eb19ddb8 100644
--- a/src/tableData/MiddlewareData/MiddlewareGoData.js
+++ b/src/tableData/MiddlewareData/MiddlewareGoData.js
@@ -14,7 +14,7 @@ export const MiddlewareGoData = [
{
title: "[Caddy](https://github.com/caddyserver/caddy)",
description:
- "Fast, cross-platform HTTP/2 web server with automatic HTTPS, via
plugin: [caddy-authz](https://github.com/casbin/caddy-authz)",
+ "Fast, cross-platform HTTP/2 web server with automatic HTTPS, via
plugin: [caddy-authz](https://github.com/apache/casbin-caddy-authz)",
image: "/img/ecosystem/caddy.jpeg",
},
{
@@ -44,7 +44,7 @@ export const MiddlewareGoData = [
{
title: "[FastHTTP](https://github.com/valyala/fasthttp)",
description:
- "Fast HTTP package for Go. Tuned for high performance. Zero memory
allocations in hot paths. Up to 10x faster than net/http, via plugin:
[fasthttp-auth](https://github.com/casbin/fasthttp-auth)",
+ "Fast HTTP package for Go. Tuned for high performance. Zero memory
allocations in hot paths. Up to 10x faster than net/http, via plugin:
[fasthttp-auth](https://github.com/apache/casbin-fasthttp-auth)",
},
{
title: "[Revel](https://github.com/revel/revel)",
@@ -79,13 +79,13 @@ export const MiddlewareGoData = [
{
title: "[Negroni](https://github.com/urfave/negroni)",
description:
- "Idiomatic HTTP Middleware for Golang, via plugin:
[negroni-authz](https://github.com/casbin/negroni-authz)",
+ "Idiomatic HTTP Middleware for Golang, via plugin:
[negroni-authz](https://github.com/apache/casbin-negroni-authz)",
image: null,
},
{
title: "[Chi](https://github.com/pressly/chi)",
description:
- "A lightweight, idiomatic and composable router for building HTTP
services, via plugin: [chi-authz](https://github.com/casbin/chi-authz)",
+ "A lightweight, idiomatic and composable router for building HTTP
services, via plugin: [chi-authz](https://github.com/apache/casbin-chi-authz)",
image: "/img/ecosystem/chi.png",
},
{
@@ -118,7 +118,7 @@ export const MiddlewareGoData = [
{
title: "[Tyk](https://github.com/TykTechnologies/tyk)",
description:
- "An open source Enterprise API Gateway, supporting REST, GraphQL, TCP
and gRPC protocols, via plugin:
[tyk-authz](https://github.com/casbin/tyk-authz)",
+ "An open source Enterprise API Gateway, supporting REST, GraphQL, TCP
and gRPC protocols, via plugin:
[tyk-authz](https://github.com/apache/casbin-tyk-authz)",
},
{
title: "[Hertz](https://github.com/cloudwego/hertz)",
diff --git a/src/tableData/RoleManagerData/RoleManagerGoData.js
b/src/tableData/RoleManagerData/RoleManagerGoData.js
index 08496485e..09eab8443 100644
--- a/src/tableData/RoleManagerData/RoleManagerGoData.js
+++ b/src/tableData/RoleManagerData/RoleManagerGoData.js
@@ -1,13 +1,13 @@
export const RoleManagerGoData = [
{
title:
- "[Default Role Manager
(built-in)](https://github.com/casbin/casbin/blob/master/rbac/default-role-manager/role_manager.go)",
+ "[Default Role Manager
(built-in)](https://github.com/apache/casbin/blob/master/rbac/default-role-manager/role_manager.go)",
author: "Casbin",
description: "Supports role hierarchy stored in the Casbin policy",
},
{
title:
- "[Session Role Manager](https://github.com/casbin/session-role-manager)",
+ "[Session Role
Manager](https://github.com/apache/casbin-session-role-manager)",
author: "[EDOMO Systems](https://github.com/edomosystems)",
description:
"Supports role hierarchy stored in the Casbin policy, with
time-range-based sessions",
@@ -15,14 +15,14 @@ export const RoleManagerGoData = [
},
{
- title: "[Okta Role Manager](https://github.com/casbin/okta-role-manager)",
+ title: "[Okta Role
Manager](https://github.com/apache/casbin-okta-role-manager)",
author: "Casbin",
description:
"Supports role hierarchy stored in [Okta](https://www.okta.com/)",
image: "/img/ecosystem/okta.png",
},
{
- title: "[Auth0 Role
Manager](https://github.com/casbin/auth0-role-manager)",
+ title: "[Auth0 Role
Manager](https://github.com/apache/casbin-auth0-role-manager)",
author: "Casbin",
description:
"Supports role hierarchy stored in [Auth0](https://auth0.com/)'s
[Authorization
Extension](https://auth0.com/docs/extensions/authorization-extension/v2)",
diff --git a/src/tableData/RoleManagerData/RoleManagerJavaData.js
b/src/tableData/RoleManagerData/RoleManagerJavaData.js
index 075fc815b..afe913be9 100644
--- a/src/tableData/RoleManagerData/RoleManagerJavaData.js
+++ b/src/tableData/RoleManagerData/RoleManagerJavaData.js
@@ -1,7 +1,7 @@
export const RoleManagerJavaData = [
{
title:
- "[Default Role Manager
(built-in)](https://github.com/casbin/jcasbin/blob/master/src/main/java/org/casbin/jcasbin/rbac/DefaultRoleManager.java)",
+ "[Default Role Manager
(built-in)](https://github.com/apache/casbin-jcasbin/blob/master/src/main/java/org/casbin/jcasbin/rbac/DefaultRoleManager.java)",
author: "Casbin",
description: "Supports role hierarchy stored in the Casbin policy",
},
diff --git a/src/tableData/RoleManagerData/RoleManagerNodejsData.js
b/src/tableData/RoleManagerData/RoleManagerNodejsData.js
index 35c2b82c7..f7f7fe5cb 100644
--- a/src/tableData/RoleManagerData/RoleManagerNodejsData.js
+++ b/src/tableData/RoleManagerData/RoleManagerNodejsData.js
@@ -1,7 +1,7 @@
export const RoleManagerNodejsData = [
{
title:
- "[Default Role Manager
(built-in)](https://github.com/casbin/node-casbin/blob/master/src/rbac/defaultRoleManager.ts)",
+ "[Default Role Manager
(built-in)](https://github.com/apache/casbin-node-casbin/blob/master/src/rbac/defaultRoleManager.ts)",
author: "Casbin",
description: "Supports role hierarchy stored in the Casbin policy",
},
diff --git a/src/tableData/RoleManagerData/RoleManagerPythonData.js
b/src/tableData/RoleManagerData/RoleManagerPythonData.js
index ce9299e8d..c211cdeb5 100644
--- a/src/tableData/RoleManagerData/RoleManagerPythonData.js
+++ b/src/tableData/RoleManagerData/RoleManagerPythonData.js
@@ -1,7 +1,7 @@
export const RoleManagerPythonData = [
{
title:
- "[Default Role Manager
(built-in)](https://github.com/casbin/pycasbin/blob/master/casbin/rbac/default_role_manager/role_manager.py)",
+ "[Default Role Manager
(built-in)](https://github.com/apache/casbin-pycasbin/blob/master/casbin/rbac/default_role_manager/role_manager.py)",
author: "Casbin",
description: "Supports role hierarchy stored in the Casbin policy",
},
diff --git a/src/tableData/WatcherData/WatcherGoData.js
b/src/tableData/WatcherData/WatcherGoData.js
index be2ee04c1..7f4296cac 100644
--- a/src/tableData/WatcherData/WatcherGoData.js
+++ b/src/tableData/WatcherData/WatcherGoData.js
@@ -8,7 +8,7 @@ export const WatcherGoData = [
image: "/img/ecosystem/postgreSQL.png",
},
{
- title: "[Redis WatcherEx](https://github.com/casbin/redis-watcher)",
+ title: "[Redis WatcherEx](https://github.com/apache/casbin-redis-watcher)",
type: "KV store",
author: "Casbin",
description: "WatcherEx for [Redis](http://redis.io/)",
@@ -23,14 +23,14 @@ export const WatcherGoData = [
image: "/img/ecosystem/redis.png",
},
{
- title: "[Etcd Watcher](https://github.com/casbin/etcd-watcher)",
+ title: "[Etcd Watcher](https://github.com/apache/casbin-etcd-watcher)",
type: "KV store",
author: "Casbin",
description: "Watcher for [etcd](https://github.com/coreos/etcd)",
image: "/img/ecosystem/etcd.png",
},
{
- title: "[TiKV Watcher](https://github.com/casbin/tikv-watcher)",
+ title: "[TiKV Watcher](https://github.com/apache/casbin-tikv-watcher)",
type: "KV store",
author: "Casbin",
description: "Watcher for [TiKV](https://github.com/tikv/tikv)",
diff --git a/static/data/users.json b/static/data/users.json
index d5eacdeca..c79bef670 100644
--- a/static/data/users.json
+++ b/static/data/users.json
@@ -38,7 +38,7 @@
{
"caption": "Verizon",
"image": "users/verizon.png",
- "infolink": "https://github.com/casbin/casbin/pull/56",
+ "infolink": "https://github.com/apache/casbin/pull/56",
"pinned": true
},
{
@@ -80,13 +80,13 @@
{
"caption": "F5",
"image": "users/f5.png",
- "infolink": "https://github.com/casbin/casbin/issues/299",
+ "infolink": "https://github.com/apache/casbin/issues/299",
"pinned": true
},
{
"caption": "Bose",
"image": "users/bose.png",
- "infolink": "https://github.com/casbin/casbin/issues/302",
+ "infolink": "https://github.com/apache/casbin/issues/302",
"pinned": true
},
{
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]