mirror of https://github.com/jumpserver/jumpserver
				
				
				
			
		
			
				
	
	
		
			27 lines
		
	
	
		
			812 B
		
	
	
	
		
			Python
		
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			812 B
		
	
	
	
		
			Python
		
	
	
from django.utils import timezone
 | 
						|
from django.conf import settings
 | 
						|
from django.core.exceptions import PermissionDenied
 | 
						|
 | 
						|
from authentication.models import TempToken
 | 
						|
from .base import JMSModelBackend
 | 
						|
 | 
						|
 | 
						|
class TempTokenAuthBackend(JMSModelBackend):
 | 
						|
    model = TempToken
 | 
						|
 | 
						|
    def authenticate(self, request, username='', password='', *args, **kwargs):
 | 
						|
        token = self.model.objects.filter(username=username, secret=password).first()
 | 
						|
        if not token:
 | 
						|
            return None
 | 
						|
        if not token.is_valid:
 | 
						|
            raise PermissionDenied('Token is invalid, expired at {}'.format(token.date_expired))
 | 
						|
 | 
						|
        token.verified = True
 | 
						|
        token.date_verified = timezone.now()
 | 
						|
        token.save()
 | 
						|
        return token.user
 | 
						|
 | 
						|
    @staticmethod
 | 
						|
    def is_enabled():
 | 
						|
        return settings.AUTH_TEMP_TOKEN
 |