Handle Gitea all token scope
This commit is contained in:
@@ -154,6 +154,10 @@ Wartosci w `scope`:
|
|||||||
- `?` - nie wczytano
|
- `?` - nie wczytano
|
||||||
- `!` - blad wczytania
|
- `!` - blad wczytania
|
||||||
|
|
||||||
|
Gitea moze zwrocic globalny scope `all` zamiast listy `write:*`. Launcher
|
||||||
|
rozwija wtedy `all` do pelnej maski `wwwwwwwww`. Scope `public-only` jest
|
||||||
|
flaga ograniczenia widocznosci API i nie zmienia kategorii w tej masce.
|
||||||
|
|
||||||
Kategorie `org_perm`:
|
Kategorie `org_perm`:
|
||||||
|
|
||||||
- `o` - owner
|
- `o` - owner
|
||||||
|
|||||||
@@ -65,6 +65,11 @@ SCOPE_FIELDS = [
|
|||||||
("u", "user"),
|
("u", "user"),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
SCOPE_CATEGORY_ALIASES = {
|
||||||
|
"organization": ["organization", "org"],
|
||||||
|
"repository": ["repository", "repo"],
|
||||||
|
}
|
||||||
|
|
||||||
ORG_PERMISSION_FIELDS = [
|
ORG_PERMISSION_FIELDS = [
|
||||||
("o", "owner"),
|
("o", "owner"),
|
||||||
("a", "admin"),
|
("a", "admin"),
|
||||||
@@ -1559,13 +1564,16 @@ def api_get_json(api_url: str, token_value: str, user_name: str = "", basic: boo
|
|||||||
|
|
||||||
|
|
||||||
def scope_mask(scopes: list[str]) -> str:
|
def scope_mask(scopes: list[str]) -> str:
|
||||||
scope_set = {scope.lower() for scope in scopes}
|
scope_set = {scope.strip().lower() for scope in scopes if scope.strip()}
|
||||||
|
if "all" in scope_set:
|
||||||
|
return "w" * len(SCOPE_FIELDS)
|
||||||
|
|
||||||
values = []
|
values = []
|
||||||
for _, category in SCOPE_FIELDS:
|
for _, category in SCOPE_FIELDS:
|
||||||
if f"write:{category}" in scope_set:
|
category_names = SCOPE_CATEGORY_ALIASES.get(category, [category])
|
||||||
|
if any(f"write:{category_name}" in scope_set for category_name in category_names):
|
||||||
values.append("w")
|
values.append("w")
|
||||||
elif f"read:{category}" in scope_set:
|
elif any(f"read:{category_name}" in scope_set for category_name in category_names):
|
||||||
values.append("r")
|
values.append("r")
|
||||||
else:
|
else:
|
||||||
values.append("-")
|
values.append("-")
|
||||||
|
|||||||
Reference in New Issue
Block a user