mirror of
				https://github.com/jumpserver/jumpserver.git
				synced 2025-10-31 05:41:59 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			36 lines
		
	
	
		
			969 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			969 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| from rest_framework.views import APIView
 | |
| from rest_framework.request import Request
 | |
| from rest_framework.response import Response
 | |
| 
 | |
| from users.permissions import IsAuthPasswdTimeValid
 | |
| from users.models import User
 | |
| from common.utils import get_logger
 | |
| from common.permissions import IsOrgAdmin
 | |
| from common.mixins.api import RoleUserMixin, RoleAdminMixin
 | |
| from authentication import errors
 | |
| 
 | |
| logger = get_logger(__file__)
 | |
| 
 | |
| 
 | |
| class DingTalkQRUnBindBase(APIView):
 | |
|     user: User
 | |
| 
 | |
|     def post(self, request: Request, **kwargs):
 | |
|         user = self.user
 | |
| 
 | |
|         if not user.dingtalk_id:
 | |
|             raise errors.DingTalkNotBound
 | |
| 
 | |
|         user.dingtalk_id = None
 | |
|         user.save()
 | |
|         return Response()
 | |
| 
 | |
| 
 | |
| class DingTalkQRUnBindForUserApi(RoleUserMixin, DingTalkQRUnBindBase):
 | |
|     permission_classes = (IsAuthPasswdTimeValid,)
 | |
| 
 | |
| 
 | |
| class DingTalkQRUnBindForAdminApi(RoleAdminMixin, DingTalkQRUnBindBase):
 | |
|     user_id_url_kwarg = 'user_id'
 | |
|     permission_classes = (IsOrgAdmin,)
 |