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配置!'})
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)
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配置!'})