Default OTP requirement to system admin only
This commit is contained in:
@@ -43,7 +43,7 @@
|
|||||||
|
|
||||||
<label class="grid gap-1 md:col-span-2">
|
<label class="grid gap-1 md:col-span-2">
|
||||||
<span class="text-sm text-slate-600">Default OTP Required Roles (CSV)</span>
|
<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>
|
||||||
|
|
||||||
<label class="grid gap-1">
|
<label class="grid gap-1">
|
||||||
@@ -64,3 +64,4 @@
|
|||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
|||||||
@@ -43,7 +43,7 @@
|
|||||||
|
|
||||||
<label class="grid gap-1 md:col-span-2">
|
<label class="grid gap-1 md:col-span-2">
|
||||||
<span class="text-sm text-slate-600">Default OTP Required Roles (CSV)</span>
|
<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>
|
||||||
|
|
||||||
<label class="grid gap-1">
|
<label class="grid gap-1">
|
||||||
@@ -68,3 +68,4 @@
|
|||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
|||||||
@@ -243,7 +243,7 @@ def tenant_create_submit(
|
|||||||
firm_type: str = Form("proprietorship"),
|
firm_type: str = Form("proprietorship"),
|
||||||
default_timezone: str = Form("Asia/Kolkata"),
|
default_timezone: str = Form("Asia/Kolkata"),
|
||||||
default_session_duration_minutes: int = Form(480),
|
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"),
|
default_storage_mode: str = Form("local_only"),
|
||||||
csrf_token: str = Form(...),
|
csrf_token: str = Form(...),
|
||||||
):
|
):
|
||||||
@@ -266,7 +266,7 @@ def tenant_create_submit(
|
|||||||
firm_type=(firm_type or "partnership").strip(),
|
firm_type=(firm_type or "partnership").strip(),
|
||||||
default_timezone=(default_timezone or "Asia/Kolkata").strip(),
|
default_timezone=(default_timezone or "Asia/Kolkata").strip(),
|
||||||
default_session_duration_minutes=default_session_duration_minutes or 480,
|
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(),
|
default_storage_mode=(default_storage_mode or "local_only").strip(),
|
||||||
)
|
)
|
||||||
db.add(tenant)
|
db.add(tenant)
|
||||||
@@ -319,7 +319,7 @@ def tenant_edit_submit(
|
|||||||
firm_type: str = Form("proprietorship"),
|
firm_type: str = Form("proprietorship"),
|
||||||
default_timezone: str = Form("Asia/Kolkata"),
|
default_timezone: str = Form("Asia/Kolkata"),
|
||||||
default_session_duration_minutes: int = Form(480),
|
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"),
|
default_storage_mode: str = Form("local_only"),
|
||||||
is_active: str | None = Form(None),
|
is_active: str | None = Form(None),
|
||||||
csrf_token: str = Form(...),
|
csrf_token: str = Form(...),
|
||||||
@@ -345,7 +345,7 @@ def tenant_edit_submit(
|
|||||||
tenant.firm_type = (firm_type or "partnership").strip()
|
tenant.firm_type = (firm_type or "partnership").strip()
|
||||||
tenant.default_timezone = (default_timezone or "Asia/Kolkata").strip()
|
tenant.default_timezone = (default_timezone or "Asia/Kolkata").strip()
|
||||||
tenant.default_session_duration_minutes = default_session_duration_minutes or 480
|
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.default_storage_mode = (default_storage_mode or "local_only").strip()
|
||||||
tenant.is_active = is_active is not None
|
tenant.is_active = is_active is not None
|
||||||
db.commit()
|
db.commit()
|
||||||
@@ -656,7 +656,7 @@ def branch_edit_submit(
|
|||||||
max_file_mb: str = Form("25"),
|
max_file_mb: str = Form("25"),
|
||||||
allowed_ext_csv: str = Form("pdf,jpg,jpeg,png,xlsx,xls,docx,zip"),
|
allowed_ext_csv: str = Form("pdf,jpg,jpeg,png,xlsx,xls,docx,zip"),
|
||||||
retention_years: str = Form("8"),
|
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"),
|
session_duration_minutes: str = Form("480"),
|
||||||
lockout_attempts: str = Form("5"),
|
lockout_attempts: str = Form("5"),
|
||||||
lockout_minutes: str = Form("15"),
|
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.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.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.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.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_attempts = int(lockout_attempts) if str(lockout_attempts).strip() else 5
|
||||||
settings.lockout_minutes = int(lockout_minutes) if str(lockout_minutes).strip() else 15
|
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)
|
return _redirect_back(request)
|
||||||
finally:
|
finally:
|
||||||
db.close()
|
db.close()
|
||||||
|
|
||||||
|
|||||||
@@ -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",
|
"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_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_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",
|
"default_storage_mode": clean_text(str(form.get("default_storage_mode") or "local_only")) or "local_only",
|
||||||
"branch_code": branch_code,
|
"branch_code": branch_code,
|
||||||
"branch_name": clean_text(str(form.get("branch_name") or "Head Office")) or "Head Office",
|
"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_status=invite_email_status,
|
||||||
invite_email_error=invite_email_error,
|
invite_email_error=invite_email_error,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -61,7 +61,7 @@
|
|||||||
</label>
|
</label>
|
||||||
<label class="grid gap-1 md:col-span-2">
|
<label class="grid gap-1 md:col-span-2">
|
||||||
<span class="text-sm text-slate-600">OTP required roles CSV</span>
|
<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>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
@@ -182,3 +182,4 @@
|
|||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ def _default_form_values() -> dict:
|
|||||||
"firm_type": "partnership",
|
"firm_type": "partnership",
|
||||||
"default_timezone": "Asia/Kolkata",
|
"default_timezone": "Asia/Kolkata",
|
||||||
"default_session_duration_minutes": 480,
|
"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",
|
"default_storage_mode": "local_only",
|
||||||
"branch_code": "HO",
|
"branch_code": "HO",
|
||||||
"branch_name": "Head Office",
|
"branch_name": "Head Office",
|
||||||
@@ -121,7 +121,7 @@ def system_firm_preview(
|
|||||||
firm_type: str = Form("partnership"),
|
firm_type: str = Form("partnership"),
|
||||||
default_timezone: str = Form("Asia/Kolkata"),
|
default_timezone: str = Form("Asia/Kolkata"),
|
||||||
default_session_duration_minutes: int = Form(480),
|
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"),
|
default_storage_mode: str = Form("local_only"),
|
||||||
branch_code: str = Form("HO"),
|
branch_code: str = Form("HO"),
|
||||||
branch_name: str = Form("Head Office"),
|
branch_name: str = Form("Head Office"),
|
||||||
@@ -181,7 +181,7 @@ def system_firm_confirm(
|
|||||||
firm_type: str = Form("partnership"),
|
firm_type: str = Form("partnership"),
|
||||||
default_timezone: str = Form("Asia/Kolkata"),
|
default_timezone: str = Form("Asia/Kolkata"),
|
||||||
default_session_duration_minutes: int = Form(480),
|
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"),
|
default_storage_mode: str = Form("local_only"),
|
||||||
branch_code: str = Form("HO"),
|
branch_code: str = Form("HO"),
|
||||||
branch_name: str = Form("Head Office"),
|
branch_name: str = Form("Head Office"),
|
||||||
@@ -290,3 +290,4 @@ def system_firm_confirm(
|
|||||||
)
|
)
|
||||||
finally:
|
finally:
|
||||||
db.close()
|
db.close()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user