mirror of
https://gitflic.ru/project/santaspeen/gitflic.git
synced 2025-08-17 00:45:42 +00:00
Refactor GitflicAuthScopes
This commit is contained in:
parent
01e9a9a879
commit
9813bc6131
@ -1,6 +1,8 @@
|
|||||||
"""
|
"""
|
||||||
Gitflic authentication wrapper.
|
Gitflic authentication wrapper.
|
||||||
"""
|
"""
|
||||||
|
import urllib.parse
|
||||||
|
import webbrowser
|
||||||
from enum import Enum
|
from enum import Enum
|
||||||
from typing import Union
|
from typing import Union
|
||||||
import logging
|
import logging
|
||||||
@ -13,15 +15,38 @@ from .__version__ import __version__
|
|||||||
OAUTH_URL = "https://oauth.gitflic.ru/oauth/authorize?scope={}&clientId={}&redirectUrl={}&state={}"
|
OAUTH_URL = "https://oauth.gitflic.ru/oauth/authorize?scope={}&clientId={}&redirectUrl={}&state={}"
|
||||||
|
|
||||||
|
|
||||||
|
def _add_enum_values(*args):
|
||||||
|
string = str()
|
||||||
|
for arg in args:
|
||||||
|
if isinstance(arg, Enum):
|
||||||
|
string += arg.value
|
||||||
|
else:
|
||||||
|
string += str(arg)
|
||||||
|
string += ","
|
||||||
|
return string[:len(string)-1]
|
||||||
|
|
||||||
|
|
||||||
class GitflicAuthScopes(Enum):
|
class GitflicAuthScopes(Enum):
|
||||||
""" Authentication scopes from Gitflic. """
|
""" Authentication scopes from Gitflic. Doc: https://gitflic.ru/help/api/access-token"""
|
||||||
USER_READ = "USER_READ"
|
USER_READ = "USER_READ"
|
||||||
USER_WRITE = "USER_WRITE"
|
USER_WRITE = "USER_WRITE"
|
||||||
PROJECT_READ = "PROJECT_READ"
|
PROJECT_READ = "PROJECT_READ"
|
||||||
PROJECT_WRITE = "PROJECT_WRITE"
|
PROJECT_WRITE = "PROJECT_WRITE"
|
||||||
PROJECT_EDIT = "PROJECT_EDIT"
|
PROJECT_EDIT = "PROJECT_EDIT"
|
||||||
|
|
||||||
ALL = "USER_READ,USER_WRITE,PROJECT_READ,PROJECT_WRITE,PROJECT_EDIT"
|
# For a hint in the IDE
|
||||||
|
ALL_READ: "GitflicAuthScopes.ALL_READ"
|
||||||
|
ALL_WRITE: "GitflicAuthScopes.ALL_WRITE"
|
||||||
|
ALL: "GitflicAuthScopes.ALL"
|
||||||
|
|
||||||
|
|
||||||
|
GitflicAuthScopes.ALL_READ = _add_enum_values(GitflicAuthScopes.USER_READ,
|
||||||
|
GitflicAuthScopes.PROJECT_READ)
|
||||||
|
GitflicAuthScopes.ALL_WRITE = _add_enum_values(GitflicAuthScopes.PROJECT_WRITE,
|
||||||
|
GitflicAuthScopes.PROJECT_EDIT,
|
||||||
|
GitflicAuthScopes.PROJECT_WRITE)
|
||||||
|
GitflicAuthScopes.ALL = _add_enum_values(GitflicAuthScopes.ALL_WRITE,
|
||||||
|
GitflicAuthScopes.ALL_READ)
|
||||||
|
|
||||||
|
|
||||||
class GitflicAuth:
|
class GitflicAuth:
|
||||||
@ -99,15 +124,15 @@ class GitflicAuth:
|
|||||||
self.log.debug("Trying to login with OAUTH...")
|
self.log.debug("Trying to login with OAUTH...")
|
||||||
|
|
||||||
# OAUTH authorization.
|
# OAUTH authorization.
|
||||||
raise GitflicExceptions("OAUTH not implemented yet! Use raw access_token authorization.")
|
redirect_url = urllib.parse.quote_plus(self.redirect_url)
|
||||||
|
webbrowser.open(OAUTH_URL.format(self.scope, self.client_id, redirect_url, self.state))
|
||||||
# redirect_url = urllib.parse.quote_plus(self.redirect_url)
|
|
||||||
# webbrowser.open(OAUTH_URL.format(self.scope, self.client_id, redirect_url, self.state))
|
|
||||||
# url = input("Paste redirect url: ")
|
# url = input("Paste redirect url: ")
|
||||||
# r = self.session.get("").json()
|
# r = self.session.get("").json()
|
||||||
# print(r)
|
# print(r)
|
||||||
# self.session.headers.update({"Authorization": "token " + "null"})
|
# self.session.headers.update({"Authorization": "token " + "null"})
|
||||||
# self.check_token()
|
# self.check_token()
|
||||||
|
raise GitflicExceptions("OAUTH not implemented yet! Use raw access_token authorization.")
|
||||||
|
|
||||||
|
|
||||||
def _token_login(self):
|
def _token_login(self):
|
||||||
"""
|
"""
|
||||||
|
Loading…
x
Reference in New Issue
Block a user