mirror of https://github.com/go-gitea/gitea.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
de484e86bc
This PR adds the support for scopes of access tokens, mimicking the design of GitHub OAuth scopes. The changes of the core logic are in `models/auth` that `AccessToken` struct will have a `Scope` field. The normalized (no duplication of scope), comma-separated scope string will be stored in `access_token` table in the database. In `services/auth`, the scope will be stored in context, which will be used by `reqToken` middleware in API calls. Only OAuth2 tokens will have granular token scopes, while others like BasicAuth will default to scope `all`. A large amount of work happens in `routers/api/v1/api.go` and the corresponding `tests/integration` tests, that is adding necessary scopes to each of the API calls as they fit. - [x] Add `Scope` field to `AccessToken` - [x] Add access control to all API endpoints - [x] Update frontend & backend for when creating tokens - [x] Add a database migration for `scope` column (enable 'all' access to past tokens) I'm aiming to complete it before Gitea 1.19 release. Fixes #4300 |
2 years ago | |
---|---|---|
.. | ||
e2e | 2 years ago | |
fuzz | 2 years ago | |
gitea-lfs-meta | 2 years ago | |
gitea-repositories-meta | 2 years ago | |
integration | 2 years ago | |
mssql.ini.tmpl | 2 years ago | |
mysql.ini.tmpl | 2 years ago | |
mysql8.ini.tmpl | 2 years ago | |
pgsql.ini.tmpl | 2 years ago | |
sqlite.ini.tmpl | 2 years ago | |
test_utils.go | 2 years ago | |
testlogger.go | 2 years ago |