Browse Source

fix: removed deprecated functionality

Removed the deprecated functionality

BREAKING CHANGE: Many attributes removed from the admin class
pull/556/head
Richard Nemeth 8 months ago
parent
commit
333a1edfcb
No known key found for this signature in database GPG Key ID: 21C39470DF3DEC39
  1. 432
      src/keycloak/keycloak_admin.py

432
src/keycloak/keycloak_admin.py

@ -31,11 +31,9 @@ import json
from builtins import isinstance from builtins import isinstance
from typing import Optional from typing import Optional
import deprecation
from requests_toolbelt import MultipartEncoder from requests_toolbelt import MultipartEncoder
from . import urls_patterns from . import urls_patterns
from ._version import __version__
from .exceptions import ( from .exceptions import (
KeycloakDeleteError, KeycloakDeleteError,
KeycloakGetError, KeycloakGetError,
@ -73,9 +71,6 @@ class KeycloakAdmin:
:type custom_headers: dict :type custom_headers: dict
:param user_realm_name: The realm name of the user, if different from realm_name :param user_realm_name: The realm name of the user, if different from realm_name
:type user_realm_name: str :type user_realm_name: str
:param auto_refresh_token: list of methods that allows automatic token refresh.
Ex: ['get', 'put', 'post', 'delete']
:type auto_refresh_token: list
:param timeout: connection timeout in seconds :param timeout: connection timeout in seconds
:type timeout: int :type timeout: int
:param connection: A KeycloakOpenIDConnection as an alternative to individual params. :param connection: A KeycloakOpenIDConnection as an alternative to individual params.
@ -84,9 +79,6 @@ class KeycloakAdmin:
PAGE_SIZE = 100 PAGE_SIZE = 100
_auto_refresh_token = None
_connection: Optional[KeycloakOpenIDConnection] = None
def __init__( def __init__(
self, self,
server_url=None, server_url=None,
@ -100,7 +92,6 @@ class KeycloakAdmin:
client_secret_key=None, client_secret_key=None,
custom_headers=None, custom_headers=None,
user_realm_name=None, user_realm_name=None,
auto_refresh_token=None,
timeout=60, timeout=60,
connection: Optional[KeycloakOpenIDConnection] = None, connection: Optional[KeycloakOpenIDConnection] = None,
): ):
@ -130,9 +121,6 @@ class KeycloakAdmin:
:type custom_headers: dict :type custom_headers: dict
:param user_realm_name: The realm name of the user, if different from realm_name :param user_realm_name: The realm name of the user, if different from realm_name
:type user_realm_name: str :type user_realm_name: str
:param auto_refresh_token: list of methods that allows automatic token refresh.
Ex: ['get', 'put', 'post', 'delete']
:type auto_refresh_token: list
:param timeout: connection timeout in seconds :param timeout: connection timeout in seconds
:type timeout: int :type timeout: int
:param connection: An OpenID Connection as an alternative to individual params. :param connection: An OpenID Connection as an alternative to individual params.
@ -152,58 +140,6 @@ class KeycloakAdmin:
custom_headers=custom_headers, custom_headers=custom_headers,
timeout=timeout, timeout=timeout,
) )
if auto_refresh_token is not None:
self.auto_refresh_token = auto_refresh_token
@property
@deprecation.deprecated(
deprecated_in="2.13.0",
removed_in="4.0.0",
current_version=__version__,
details="Use the connection.server_url property instead",
)
def server_url(self):
"""Get server url.
:returns: Keycloak server url
:rtype: str
"""
return self.connection.server_url
@server_url.setter
@deprecation.deprecated(
deprecated_in="2.13.0",
removed_in="4.0.0",
current_version=__version__,
details="Use the connection.server_url property instead",
)
def server_url(self, value):
self.connection.server_url = value
@property
@deprecation.deprecated(
deprecated_in="2.13.0",
removed_in="4.0.0",
current_version=__version__,
details="Use the connection.realm_name property instead",
)
def realm_name(self):
"""Get realm name.
:returns: Realm name
:rtype: str
"""
return self.connection.realm_name
@realm_name.setter
@deprecation.deprecated(
deprecated_in="2.13.0",
removed_in="4.0.0",
current_version=__version__,
details="Use the connection.realm_name property instead",
)
def realm_name(self, value):
self.connection.realm_name = value
@property @property
def connection(self) -> KeycloakOpenIDConnection: def connection(self) -> KeycloakOpenIDConnection:
@ -218,256 +154,6 @@ class KeycloakAdmin:
def connection(self, value: KeycloakOpenIDConnection) -> None: def connection(self, value: KeycloakOpenIDConnection) -> None:
self._connection = value self._connection = value
@property
@deprecation.deprecated(
deprecated_in="2.13.0",
removed_in="4.0.0",
current_version=__version__,
details="Use the connection.client_id property instead",
)
def client_id(self):
"""Get client id.
:returns: Client id
:rtype: str
"""
return self.connection.client_id
@client_id.setter
@deprecation.deprecated(
deprecated_in="2.13.0",
removed_in="4.0.0",
current_version=__version__,
details="Use the connection.client_id property instead",
)
def client_id(self, value):
self.connection.client_id = value
@property
@deprecation.deprecated(
deprecated_in="2.13.0",
removed_in="4.0.0",
current_version=__version__,
details="Use the connection.client_secret_key property instead",
)
def client_secret_key(self):
"""Get client secret key.
:returns: Client secret key
:rtype: str
"""
return self.connection.client_secret_key
@client_secret_key.setter
@deprecation.deprecated(
deprecated_in="2.13.0",
removed_in="4.0.0",
current_version=__version__,
details="Use the connection.client_secret_key property instead",
)
def client_secret_key(self, value):
self.connection.client_secret_key = value
@property
@deprecation.deprecated(
deprecated_in="2.13.0",
removed_in="4.0.0",
current_version=__version__,
details="Use the connection.verify property instead",
)
def verify(self):
"""Get verify.
:returns: Verify indicator
:rtype: bool
"""
return self.connection.verify
@verify.setter
@deprecation.deprecated(
deprecated_in="2.13.0",
removed_in="4.0.0",
current_version=__version__,
details="Use the connection.verify property instead",
)
def verify(self, value):
self.connection.verify = value
@property
@deprecation.deprecated(
deprecated_in="2.13.0",
removed_in="4.0.0",
current_version=__version__,
details="Use the connection.username property instead",
)
def username(self):
"""Get username.
:returns: Admin username
:rtype: str
"""
return self.connection.username
@username.setter
@deprecation.deprecated(
deprecated_in="2.13.0",
removed_in="4.0.0",
current_version=__version__,
details="Use the connection.username property instead",
)
def username(self, value):
self.connection.username = value
@property
@deprecation.deprecated(
deprecated_in="2.13.0",
removed_in="4.0.0",
current_version=__version__,
details="Use the connection.password property instead",
)
def password(self):
"""Get password.
:returns: Admin password
:rtype: str
"""
return self.connection.password
@password.setter
@deprecation.deprecated(
deprecated_in="2.13.0",
removed_in="4.0.0",
current_version=__version__,
details="Use the connection.password property instead",
)
def password(self, value):
self.connection.password = value
@property
@deprecation.deprecated(
deprecated_in="2.13.0",
removed_in="4.0.0",
current_version=__version__,
details="Use the connection.totp property instead",
)
def totp(self):
"""Get totp.
:returns: TOTP
:rtype: str
"""
return self.connection.totp
@totp.setter
@deprecation.deprecated(
deprecated_in="2.13.0",
removed_in="4.0.0",
current_version=__version__,
details="Use the connection.totp property instead",
)
def totp(self, value):
self.connection.totp = value
@property
@deprecation.deprecated(
deprecated_in="2.13.0",
removed_in="4.0.0",
current_version=__version__,
details="Use the connection.token property instead",
)
def token(self):
"""Get token.
:returns: Access and refresh token
:rtype: dict
"""
return self.connection.token
@token.setter
@deprecation.deprecated(
deprecated_in="2.13.0",
removed_in="4.0.0",
current_version=__version__,
details="Use the connection.token property instead",
)
def token(self, value):
self.connection.token = value
@property
@deprecation.deprecated(
deprecated_in="2.13.0",
removed_in="4.0.0",
current_version=__version__,
details="Use the connection.user_realm_name property instead",
)
def user_realm_name(self):
"""Get user realm name.
:returns: User realm name
:rtype: str
"""
return self.connection.user_realm_name
@user_realm_name.setter
@deprecation.deprecated(
deprecated_in="2.13.0",
removed_in="4.0.0",
current_version=__version__,
details="Use the connection.user_realm_name property instead",
)
def user_realm_name(self, value):
self.connection.user_realm_name = value
@property
@deprecation.deprecated(
deprecated_in="2.13.0",
removed_in="4.0.0",
current_version=__version__,
details="Use the connection.custom_headers property instead",
)
def custom_headers(self):
"""Get custom headers.
:returns: Custom headers
:rtype: dict
"""
return self.connection.custom_headers
@custom_headers.setter
@deprecation.deprecated(
deprecated_in="2.13.0",
removed_in="4.0.0",
current_version=__version__,
details="Use the connection.custom_headers property instead",
)
def custom_headers(self, value):
self.connection.custom_headers = value
@property
@deprecation.deprecated(
deprecated_in="2.13.0",
removed_in="4.0.0",
current_version=__version__,
details="Auto-refresh will be implicitly set for all requests",
)
def auto_refresh_token(self):
"""Get auto refresh token.
:returns: List of methods for automatic token refresh
:rtype: list
"""
return self._auto_refresh_token
@auto_refresh_token.setter
@deprecation.deprecated(
deprecated_in="2.13.0",
removed_in="4.0.0",
current_version=__version__,
details="Auto-refresh will be implicitly set for all requests",
)
def auto_refresh_token(self, value):
self._auto_refresh_token = value or []
def __fetch_all(self, url, query=None): def __fetch_all(self, url, query=None):
"""Paginate over get requests. """Paginate over get requests.
@ -4095,120 +3781,6 @@ class KeycloakAdmin:
) )
return raise_error_from_response(data_raw, KeycloakPutError, expected_codes=[204]) return raise_error_from_response(data_raw, KeycloakPutError, expected_codes=[204])
@deprecation.deprecated(
deprecated_in="2.13.0",
removed_in="4.0.0",
current_version=__version__,
details="Use the connection.raw_get function instead",
)
def raw_get(self, *args, **kwargs):
"""Call connection.raw_get.
If auto_refresh is set for *get* and *access_token* is expired, it will refresh the token
and try *get* once more.
:param args: Additional arguments
:type args: tuple
:param kwargs: Additional keyword arguments
:type kwargs: dict
:returns: Response
:rtype: Response
"""
return self.connection.raw_get(*args, **kwargs)
@deprecation.deprecated(
deprecated_in="2.13.0",
removed_in="4.0.0",
current_version=__version__,
details="Use the connection.raw_post function instead",
)
def raw_post(self, *args, **kwargs):
"""Call connection.raw_post.
If auto_refresh is set for *post* and *access_token* is expired, it will refresh the token
and try *post* once more.
:param args: Additional arguments
:type args: tuple
:param kwargs: Additional keyword arguments
:type kwargs: dict
:returns: Response
:rtype: Response
"""
return self.connection.raw_post(*args, **kwargs)
@deprecation.deprecated(
deprecated_in="2.13.0",
removed_in="4.0.0",
current_version=__version__,
details="Use the connection.raw_put function instead",
)
def raw_put(self, *args, **kwargs):
"""Call connection.raw_put.
If auto_refresh is set for *put* and *access_token* is expired, it will refresh the token
and try *put* once more.
:param args: Additional arguments
:type args: tuple
:param kwargs: Additional keyword arguments
:type kwargs: dict
:returns: Response
:rtype: Response
"""
return self.connection.raw_put(*args, **kwargs)
@deprecation.deprecated(
deprecated_in="2.13.0",
removed_in="4.0.0",
current_version=__version__,
details="Use the connection.raw_delete function instead",
)
def raw_delete(self, *args, **kwargs):
"""Call connection.raw_delete.
If auto_refresh is set for *delete* and *access_token* is expired,
it will refresh the token and try *delete* once more.
:param args: Additional arguments
:type args: tuple
:param kwargs: Additional keyword arguments
:type kwargs: dict
:returns: Response
:rtype: Response
"""
return self.connection.raw_delete(*args, **kwargs)
@deprecation.deprecated(
deprecated_in="2.13.0",
removed_in="4.0.0",
current_version=__version__,
details="Use the connection.get_token function instead",
)
def get_token(self):
"""Get admin token.
The admin token is then set in the `token` attribute.
:returns: token
:rtype: dict
"""
return self.connection.get_token()
@deprecation.deprecated(
deprecated_in="2.13.0",
removed_in="4.0.0",
current_version=__version__,
details="Use the connection.refresh_token function instead",
)
def refresh_token(self):
"""Refresh the token.
:returns: token
:rtype: dict
"""
return self.connection.refresh_token()
def get_client_all_sessions(self, client_id): def get_client_all_sessions(self, client_id):
"""Get sessions associated with the client. """Get sessions associated with the client.
@ -4368,8 +3940,8 @@ class KeycloakAdmin:
:return: Keycloak server response :return: Keycloak server response
:rtype: bytes :rtype: bytes
""" """
params_path = {"realm-name": self.realm_name, "id": client_id}
data_raw = self.raw_post(
params_path = {"realm-name": self.connection.realm_name, "id": client_id}
data_raw = self.connection.raw_post(
urls_patterns.URL_ADMIN_ADD_CLIENT_AUTHZ_SCOPE_PERMISSION.format(**params_path), urls_patterns.URL_ADMIN_ADD_CLIENT_AUTHZ_SCOPE_PERMISSION.format(**params_path),
data=json.dumps(payload), data=json.dumps(payload),
) )

Loading…
Cancel
Save