VeuReu commited on
Commit
335e295
·
1 Parent(s): 6d8e5f4

Upload 2 files

Browse files
Files changed (1) hide show
  1. compliance_client.py +53 -57
compliance_client.py CHANGED
@@ -231,15 +231,21 @@ class ComplianceClient:
231
  return False
232
 
233
  def _show_demo_login(self) -> bool:
234
- """Muestra formulario de login por SMS cuando OAuth no está configurado"""
 
 
 
 
 
 
235
  st.markdown("""
236
  ### 🔐 Iniciar sessió (Verificació per SMS)
237
 
238
- Per continuar, necessitas identificar-te amb el teu número de telèfon i rebre un codi de verificació.
239
  """)
240
 
241
- # Mostrar términos de uso aquí
242
- with st.expander("📋 Termes d'ús - Condicions d'ús", expanded=True):
243
  st.markdown("""
244
  ### **Condicions d'ús del sistema Veureu (provisional)**
245
 
@@ -260,15 +266,9 @@ class ComplianceClient:
260
  - Pot exercir en qualsevol moment el seu dret a revocar el consentiment mitjançant el botó "Revocar permisos", el que eliminarà el material audiovisual i deixarà constància de la revocació en el registre.
261
  - Accepta que, fins a la validació interna del material per part de l'equip Dive, el vídeo romandrà en estat "pendent de validació" i no serà utilitzat públicament.
262
  """)
263
-
264
- # Paso 1: Solicitar número de teléfono
265
- if 'sms_step' not in st.session_state:
266
- st.session_state.sms_step = 'phone'
267
- st.session_state.sms_code = None
268
- st.session_state.sms_phone = None
269
-
270
- if st.session_state.sms_step == 'phone':
271
- st.markdown("#### 📱 Introdueix el teu número de telèfon")
272
 
273
  # Selector de país y número de teléfono
274
  col_country, col_phone = st.columns([1, 3])
@@ -282,64 +282,60 @@ class ComplianceClient:
282
  ], format_func=lambda x: x[0])[1]
283
 
284
  with col_phone:
285
- phone_number = st.text_input("Número de telèfon", placeholder="600 123 000 000 000 o", max_chars=15)
286
 
287
  # Checkbox para aceptar términos
288
- accept_terms = st.checkbox("✅ Accepto els termes d'ús i condicions del servei", key="sms_accept_terms")
289
 
 
 
290
  if st.button("📤 Enviar codi SMS", type="primary", disabled=not (phone_number and accept_terms)):
291
  full_phone = f"{country_code}{phone_number}"
292
  if self._send_sms_code(full_phone):
293
  st.session_state.sms_step = 'verify'
294
  st.session_state.sms_phone = full_phone
295
  st.success(f"✅ Codis enviat a {full_phone}")
296
- st.rerun()
297
  else:
298
  st.error("❌ Error enviant el codi. Torna-ho a intentar.")
299
-
300
- elif st.session_state.sms_step == 'verify':
301
- st.markdown(f"#### 🔓 Introdueix el codi de verificació enviat a {st.session_state.sms_phone}")
302
- if st.session_state.sms_code:
303
- st.info(f"💡 **Mode demo**: El codi és '{st.session_state.sms_code}'")
304
-
305
- col_code, col_resend = st.columns([2, 1])
306
- with col_code:
307
- verification_code = st.text_input("Codi de 6 dígits", max_chars=6, placeholder="000000")
308
 
309
- with col_resend:
310
- st.markdown("<br>", unsafe_allow_html=True) # Espacio para alinear botón
311
- if st.button("🔄 Tornar a enviar"):
312
- if self._send_sms_code(st.session_state.sms_phone):
313
- st.success(" Nou codi enviat")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
314
  st.rerun()
 
315
  else:
316
- st.error("❌ Error enviant el codi")
317
-
318
- if st.button("🔓 Verificar codi", type="primary"):
319
- if verification_code == st.session_state.sms_code:
320
- # Crear sesión autenticada
321
- demo_token = f"sms_token_{int(time.time())}"
322
- st.session_state.auth_token = demo_token
323
- st.session_state.current_user = {
324
- "email": f"user@{st.session_state.sms_phone.replace('+', '')}.sms",
325
- "name": "Usuario SMS",
326
- "phone": st.session_state.sms_phone
327
- }
328
- st.success("✅ Sessió iniciada correctament")
329
- # Resetear estado SMS
330
- st.session_state.sms_step = 'phone'
331
- st.session_state.sms_code = None
332
- st.session_state.sms_phone = None
333
- st.rerun()
334
- return True
335
- else:
336
- st.error(f"❌ Codi incorrecte. El codi correcte és: {st.session_state.sms_code}")
337
-
338
- if st.button("❌ Cancel·lar"):
339
- st.session_state.sms_step = 'phone'
340
- st.session_state.sms_code = None
341
- st.session_state.sms_phone = None
342
- st.rerun()
343
 
344
  return False
345
 
 
231
  return False
232
 
233
  def _show_demo_login(self) -> bool:
234
+ """Muestra formulario de login por SMS en ventana desplegable cuando OAuth no está configurado"""
235
+ # Inicializar estado SMS si no existe
236
+ if 'sms_step' not in st.session_state:
237
+ st.session_state.sms_step = 'phone'
238
+ st.session_state.sms_code = None
239
+ st.session_state.sms_phone = None
240
+
241
  st.markdown("""
242
  ### 🔐 Iniciar sessió (Verificació per SMS)
243
 
244
+ Per continuar, necessitas identificar-te i acceptar les condicions d'ús.
245
  """)
246
 
247
+ # Ventana desplegable con términos, teléfono y aceptación
248
+ with st.expander("📋 Identificació i Acceptació de Condicions", expanded=False):
249
  st.markdown("""
250
  ### **Condicions d'ús del sistema Veureu (provisional)**
251
 
 
266
  - Pot exercir en qualsevol moment el seu dret a revocar el consentiment mitjançant el botó "Revocar permisos", el que eliminarà el material audiovisual i deixarà constància de la revocació en el registre.
267
  - Accepta que, fins a la validació interna del material per part de l'equip Dive, el vídeo romandrà en estat "pendent de validació" i no serà utilitzat públicament.
268
  """)
269
+
270
+ st.markdown("---")
271
+ st.markdown("#### 📱 Dades d'identificació")
 
 
 
 
 
 
272
 
273
  # Selector de país y número de teléfono
274
  col_country, col_phone = st.columns([1, 3])
 
282
  ], format_func=lambda x: x[0])[1]
283
 
284
  with col_phone:
285
+ phone_number = st.text_input("Número de telèfon", placeholder="600 123 000", max_chars=15)
286
 
287
  # Checkbox para aceptar términos
288
+ accept_terms = st.checkbox("✅ Accepto les condicions d'ús i la política de privadesa", key="sms_accept_terms")
289
 
290
+ # Botón para enviar código
291
+ sms_sent = False
292
  if st.button("📤 Enviar codi SMS", type="primary", disabled=not (phone_number and accept_terms)):
293
  full_phone = f"{country_code}{phone_number}"
294
  if self._send_sms_code(full_phone):
295
  st.session_state.sms_step = 'verify'
296
  st.session_state.sms_phone = full_phone
297
  st.success(f"✅ Codis enviat a {full_phone}")
298
+ sms_sent = True
299
  else:
300
  st.error("❌ Error enviant el codi. Torna-ho a intentar.")
 
 
 
 
 
 
 
 
 
301
 
302
+ # Si se envió el SMS, mostrar campo para verificar código
303
+ if sms_sent or st.session_state.sms_step == 'verify':
304
+ st.markdown("#### 🔓 Verificació del codi")
305
+ if st.session_state.sms_code:
306
+ st.info(f"💡 **Mode demo**: El codi és '{st.session_state.sms_code}'")
307
+
308
+ col_code, col_resend = st.columns([2, 1])
309
+ with col_code:
310
+ verification_code = st.text_input("Codi de 6 dígits", max_chars=6, placeholder="000000")
311
+
312
+ with col_resend:
313
+ st.markdown("<br>", unsafe_allow_html=True)
314
+ if st.button("🔄 Reenviar", key="resend_in_expander"):
315
+ if self._send_sms_code(st.session_state.sms_phone):
316
+ st.success("✅ Nou codi enviat")
317
+ else:
318
+ st.error("❌ Error enviant el codi")
319
+
320
+ if st.button("🔓 Verificar i continuar", type="primary"):
321
+ if verification_code == st.session_state.sms_code:
322
+ # Crear sesión autenticada
323
+ demo_token = f"sms_token_{int(time.time())}"
324
+ st.session_state.auth_token = demo_token
325
+ st.session_state.current_user = {
326
+ "email": f"user@{st.session_state.sms_phone.replace('+', '')}.sms",
327
+ "name": "Usuario SMS",
328
+ "phone": st.session_state.sms_phone
329
+ }
330
+ st.success("✅ Sessió iniciada correctament")
331
+ # Resetear estado SMS
332
+ st.session_state.sms_step = 'phone'
333
+ st.session_state.sms_code = None
334
+ st.session_state.sms_phone = None
335
  st.rerun()
336
+ return True
337
  else:
338
+ st.error(f"❌ Codi incorrecte. El codi correcte és: {st.session_state.sms_code}")
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
339
 
340
  return False
341