jumpserver/apps/authentication/api/wecom.py

36 lines
986 B
Python
Raw Normal View History

from rest_framework.request import Request
from rest_framework.response import Response
2023-09-13 09:05:01 +00:00
from rest_framework.views import APIView
from authentication import errors
2023-09-13 09:05:01 +00:00
from authentication.const import ConfirmType
from authentication.permissions import UserConfirmation
2023-09-13 09:05:01 +00:00
from common.api import RoleUserMixin, RoleAdminMixin
from common.permissions import IsValidUser
2023-09-13 09:05:01 +00:00
from common.utils import get_logger
from users.models import User
logger = get_logger(__file__)
class WeComQRUnBindBase(APIView):
user: User
def post(self, request: Request, **kwargs):
user = self.user
if not user.wecom_id:
raise errors.WeComNotBound
2021-05-18 05:55:44 +00:00
user.wecom_id = None
user.save()
return Response()
class WeComQRUnBindForUserApi(RoleUserMixin, WeComQRUnBindBase):
permission_classes = (IsValidUser, UserConfirmation.require(ConfirmType.RELOGIN),)
class WeComQRUnBindForAdminApi(RoleAdminMixin, WeComQRUnBindBase):
user_id_url_kwarg = 'user_id'