Default OTP requirement to system admin only

This commit is contained in:
A R R R Associates
2026-07-06 23:01:53 +05:30
parent aa32579084
commit 671adbd1a2
6 changed files with 19 additions and 13 deletions
@@ -43,7 +43,7 @@
<label class="grid gap-1 md:col-span-2">
<span class="text-sm text-slate-600">Default OTP Required Roles (CSV)</span>
<input class="border rounded-xl px-3 py-2" name="default_otp_required_roles_csv" value="Partner,System Admin" />
<input class="border rounded-xl px-3 py-2" name="default_otp_required_roles_csv" value="System Admin" />
</label>
<label class="grid gap-1">
@@ -64,3 +64,4 @@
</div>
</form>
{% endblock %}
@@ -43,7 +43,7 @@
<label class="grid gap-1 md:col-span-2">
<span class="text-sm text-slate-600">Default OTP Required Roles (CSV)</span>
<input class="border rounded-xl px-3 py-2" name="default_otp_required_roles_csv" value="{{ tenant.default_otp_required_roles_csv or 'Partner,System Admin' }}" />
<input class="border rounded-xl px-3 py-2" name="default_otp_required_roles_csv" value="{{ tenant.default_otp_required_roles_csv or 'System Admin' }}" />
</label>
<label class="grid gap-1">
@@ -68,3 +68,4 @@
</div>
</form>
{% endblock %}
+7 -6
View File
@@ -243,7 +243,7 @@ def tenant_create_submit(
firm_type: str = Form("proprietorship"),
default_timezone: str = Form("Asia/Kolkata"),
default_session_duration_minutes: int = Form(480),
default_otp_required_roles_csv: str = Form("Partner,System Admin"),
default_otp_required_roles_csv: str = Form("System Admin"),
default_storage_mode: str = Form("local_only"),
csrf_token: str = Form(...),
):
@@ -266,7 +266,7 @@ def tenant_create_submit(
firm_type=(firm_type or "partnership").strip(),
default_timezone=(default_timezone or "Asia/Kolkata").strip(),
default_session_duration_minutes=default_session_duration_minutes or 480,
default_otp_required_roles_csv=(default_otp_required_roles_csv or "Partner,System Admin").strip(),
default_otp_required_roles_csv=(default_otp_required_roles_csv or "System Admin").strip(),
default_storage_mode=(default_storage_mode or "local_only").strip(),
)
db.add(tenant)
@@ -319,7 +319,7 @@ def tenant_edit_submit(
firm_type: str = Form("proprietorship"),
default_timezone: str = Form("Asia/Kolkata"),
default_session_duration_minutes: int = Form(480),
default_otp_required_roles_csv: str = Form("Partner,System Admin"),
default_otp_required_roles_csv: str = Form("System Admin"),
default_storage_mode: str = Form("local_only"),
is_active: str | None = Form(None),
csrf_token: str = Form(...),
@@ -345,7 +345,7 @@ def tenant_edit_submit(
tenant.firm_type = (firm_type or "partnership").strip()
tenant.default_timezone = (default_timezone or "Asia/Kolkata").strip()
tenant.default_session_duration_minutes = default_session_duration_minutes or 480
tenant.default_otp_required_roles_csv = (default_otp_required_roles_csv or "Partner,System Admin").strip()
tenant.default_otp_required_roles_csv = (default_otp_required_roles_csv or "System Admin").strip()
tenant.default_storage_mode = (default_storage_mode or "local_only").strip()
tenant.is_active = is_active is not None
db.commit()
@@ -656,7 +656,7 @@ def branch_edit_submit(
max_file_mb: str = Form("25"),
allowed_ext_csv: str = Form("pdf,jpg,jpeg,png,xlsx,xls,docx,zip"),
retention_years: str = Form("8"),
otp_required_roles_csv: str = Form("Partner,System Admin"),
otp_required_roles_csv: str = Form("System Admin"),
session_duration_minutes: str = Form("480"),
lockout_attempts: str = Form("5"),
lockout_minutes: str = Form("15"),
@@ -739,7 +739,7 @@ def branch_edit_submit(
settings.max_file_mb = int(max_file_mb) if str(max_file_mb).strip() else 25
settings.allowed_ext_csv = (allowed_ext_csv or "pdf,jpg,jpeg,png,xlsx,xls,docx,zip").strip()
settings.retention_years = int(retention_years) if str(retention_years).strip() else 8
settings.otp_required_roles_csv = (otp_required_roles_csv or "Partner,System Admin").strip()
settings.otp_required_roles_csv = (otp_required_roles_csv or "System Admin").strip()
settings.session_duration_minutes = int(session_duration_minutes) if str(session_duration_minutes).strip() else 480
settings.lockout_attempts = int(lockout_attempts) if str(lockout_attempts).strip() else 5
settings.lockout_minutes = int(lockout_minutes) if str(lockout_minutes).strip() else 15
@@ -1492,3 +1492,4 @@ def switch_active_branch(request: Request, branch_id: int):
return _redirect_back(request)
finally:
db.close()
+2 -1
View File
@@ -119,7 +119,7 @@ def build_firm_wizard_payload(form: dict[str, Any]) -> dict[str, Any]:
"firm_type": clean_text(str(form.get("firm_type") or "partnership")) or "partnership",
"default_timezone": clean_text(str(form.get("default_timezone") or "Asia/Kolkata")) or "Asia/Kolkata",
"default_session_duration_minutes": parse_int(form.get("default_session_duration_minutes"), 480),
"default_otp_required_roles_csv": clean_text(str(form.get("default_otp_required_roles_csv") or "Partner,System Admin")) or "Partner,System Admin",
"default_otp_required_roles_csv": clean_text(str(form.get("default_otp_required_roles_csv") or "System Admin")) or "System Admin",
"default_storage_mode": clean_text(str(form.get("default_storage_mode") or "local_only")) or "local_only",
"branch_code": branch_code,
"branch_name": clean_text(str(form.get("branch_name") or "Head Office")) or "Head Office",
@@ -378,3 +378,4 @@ def create_firm_from_wizard(db: Session, payload: dict[str, Any]) -> FirmWizardR
invite_email_status=invite_email_status,
invite_email_error=invite_email_error,
)
@@ -61,7 +61,7 @@
</label>
<label class="grid gap-1 md:col-span-2">
<span class="text-sm text-slate-600">OTP required roles CSV</span>
<input class="rounded-xl border px-3 py-2" name="default_otp_required_roles_csv" value="{{ form.default_otp_required_roles_csv or 'Partner,System Admin' }}" />
<input class="rounded-xl border px-3 py-2" name="default_otp_required_roles_csv" value="{{ form.default_otp_required_roles_csv or 'System Admin' }}" />
</label>
</div>
</section>
@@ -182,3 +182,4 @@
</form>
</div>
{% endblock %}
+4 -3
View File
@@ -66,7 +66,7 @@ def _default_form_values() -> dict:
"firm_type": "partnership",
"default_timezone": "Asia/Kolkata",
"default_session_duration_minutes": 480,
"default_otp_required_roles_csv": "Partner,System Admin",
"default_otp_required_roles_csv": "System Admin",
"default_storage_mode": "local_only",
"branch_code": "HO",
"branch_name": "Head Office",
@@ -121,7 +121,7 @@ def system_firm_preview(
firm_type: str = Form("partnership"),
default_timezone: str = Form("Asia/Kolkata"),
default_session_duration_minutes: int = Form(480),
default_otp_required_roles_csv: str = Form("Partner,System Admin"),
default_otp_required_roles_csv: str = Form("System Admin"),
default_storage_mode: str = Form("local_only"),
branch_code: str = Form("HO"),
branch_name: str = Form("Head Office"),
@@ -181,7 +181,7 @@ def system_firm_confirm(
firm_type: str = Form("partnership"),
default_timezone: str = Form("Asia/Kolkata"),
default_session_duration_minutes: int = Form(480),
default_otp_required_roles_csv: str = Form("Partner,System Admin"),
default_otp_required_roles_csv: str = Form("System Admin"),
default_storage_mode: str = Form("local_only"),
branch_code: str = Form("HO"),
branch_name: str = Form("Head Office"),
@@ -290,3 +290,4 @@ def system_firm_confirm(
)
finally:
db.close()