Ejemplo n.º 1
0
 def post(self, request, args: str = None):
     try:
         username = request.data['username']
         password = request.data['password']
     except KeyError as e:
         CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}')
     else:
         jwt_payload_handler = api_settings.JWT_PAYLOAD_HANDLER
         jwt_encode_handler = api_settings.JWT_ENCODE_HANDLER
         valite = util.auth(username=username, password=password)
         if valite:
             try:
                 user = Account.objects.filter(username=username).first()
                 user.set_password(password)
                 user.save()
                 payload = jwt_payload_handler(user)
                 token = jwt_encode_handler(payload)
                 return Response({'token': token, 'res': '', 'permissions': user.group})
             except:
                 permissions = Account.objects.create_user(
                     username=username,
                     password=password,
                     is_staff=0,
                     group='guest')
                 permissions.save()
                 grained.objects.get_or_create(username=username, permissions=PERMISSION)
                 _user = authenticate(username=username, password=password)
                 token = jwt_encode_handler(jwt_payload_handler(_user))
                 return Response({'token': token, 'res': '', 'permissions': 'guest'})
         else:
             return Response({'token': 'null', 'res': 'ldap账号认证失败,请检查ldap账号或ldap配置!'})
Ejemplo n.º 2
0
 def post(self, request, args: str = None):
     try:
         username = request.data['username']
         password = request.data['password']
     except KeyError as e:
         CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}')
     else:
         valite = util.auth(username=username, password=password)
         if valite:
             user = Account.objects.filter(username=username).first()
             if user is not None:
                 user.set_password(util.workId())
                 user.save()
                 payload = jwt_payload_handler(user)
                 token = jwt_encode_handler(payload)
                 return Response({'token': token, 'res': '', 'permissions': user.group})
             else:
                 permissions = Account.objects.create_user(
                     username=username,
                     password=util.workId(),
                     is_staff=0,
                     group='guest')
                 permissions.save()
                 token = jwt_encode_handler(jwt_payload_handler(permissions))
                 return Response({'token': token, 'res': '', 'permissions': 'guest'})
         else:
             return HttpResponse(status=401)
Ejemplo n.º 3
0
    def post(self, request, args: str = None):
        try:
            username = request.data['username']
            password = request.data['password']
        except KeyError as e:
            CUSTOM_ERROR.error(f'{e.__class__.__name__}: {e}')
        else:
            jwt_payload_handler = api_settings.JWT_PAYLOAD_HANDLER
            jwt_encode_handler = api_settings.JWT_ENCODE_HANDLER
            valite = util.auth(username=username, password=password)
            if valite:
                # re-organize user
                username = valite['uid'][0]
                real_name = valite['cn'][0]
                email = valite['mail'][0]

                user = Account.objects.filter(username=username).first()
                if user is not None:
                    payload = jwt_payload_handler(user)
                    token = jwt_encode_handler(payload)
                    return Response({'token': token, 'res': '', 'permissions': user.group})
                else:
                    permissions = Account.objects.create_user(
                        username=username,
                        password=password+'not save',
                        is_staff=1,
                        department=os.environ.get('YEARNING_DEFAULT_DEPARTMENT', 'default'),
                        auth_group=os.environ.get('YEARNING_DEFAULT_GROUP', ',basic'),
                        real_name=real_name,
                        email=email,
                        group='guest')
                    permissions.save()
                    _user = authenticate(username=username, password=password+'not save')
                    token = jwt_encode_handler(jwt_payload_handler(_user))
                    return Response({'token': token, 'res': '', 'permissions': 'guest'})
            else:
                return Response({'token': 'null', 'res': 'ldap账号认证失败,请检查ldap账号或ldap配置!'})