Код: Выделить всё
def save_user_pdfs(user_id, pdf_name, pdf_hash, extracted_text, summary):
print(f"Saving PDF for user_id: {user_id}") # Debugging
if not user_id:
print("Error: user_id is None or missing")
return False
existing_pdfs = get_user_pdfs(user_id)
if len(existing_pdfs)>5:
return False
data = {
"user_id" : user_id,
"pdf_name" : pdf_name,
"pdf_hash" : pdf_hash,
"extracted_text" : extracted_text,
"summary" : summary,
#"created_at": "now()"
}
#user_id = user.id # Ensure this is passed to `save_user_pdfs`
print(f"Authenticated User ID: {user_id}")
try:
if data["user_id"]:
print(f"user id is {data['user_id']}")
response = supabase.table("user_pdfs").insert(data).execute()
print("response", response)
return response.data is not None
except Exception as e:
print(f"{e}")
{'code': '42501', 'details': нет, 'подсказка': нет, 'message': 'новая строка нарушает политику безопасности на уровне строк для таблицы "user_pdfs"'}
Вот моя политика вставки:
alter policy "Включить вставку для пользователей на основе user_id" на "public"."user_pdfs"
для аутентификации
с проверкой (auth.uid()) = user_id);
Это работает, когда я отключаю политику RLS, но не с правилами политики. Я хочу, чтобы только прошедшие проверку подлинности пользователи могли вставлять данные в таблицу user_pdfs в общедоступной базе данных.
Подробнее здесь: https://stackoverflow.com/questions/795 ... 501-python
Мобильная версия