Source code for tcms.rpc.api.auth

import django.contrib.auth
from django.core.exceptions import PermissionDenied

from tcms.rpc.views import rpc_method


[docs] @rpc_method( name="Auth.login", auth=None, context_target="rpc_context", ) def login( username, password, rpc_context=None ): # pylint: disable=missing-api-permissions-required """ .. function:: RPC Auth.login(username, password) Login into Kiwi TCMS. :param username: A Kiwi TCMS login :type username: str :param password: The password :type password: str :param rpc_context: Provides access to the current request, protocol, entry point name and handler instance from the rpc method :type rpc_context: modernrpc.core.RpcRequestContext :return: Session ID :rtype: str :raises PermissionDenied: if username or password doesn't match or missing """ # Get the current request request = rpc_context.request if not username or not password: raise PermissionDenied("Username and password is required") user = django.contrib.auth.authenticate( request, username=username, password=password ) if user is not None: django.contrib.auth.login(request, user) return request.session.session_key raise PermissionDenied("Wrong username or password")
[docs] @rpc_method( name="Auth.logout", auth=None, context_target="rpc_context", ) def logout(rpc_context=None): # pylint: disable=missing-api-permissions-required """ .. function:: RPC Auth.logout() Delete session information """ # Get the current request request = rpc_context.request django.contrib.auth.logout(request)