Source code for q2_sdk.hq.db.password_policy

from enum import Enum

from q2_sdk.core.dynamic_imports import (
    api_ExecuteStoredProcedure as ExecuteStoredProcedure,
)
from q2_sdk.hq.table_row import TableRow

from .db_object import DbObject


[docs] class UiSource(Enum): OnlineBanking = "OnlineBanking" VoiceBanking = "VoiceBanking" BackOffice = "BackOffice" Merchant = "Merchant" Fax = "Fax" Notifications = "Notifications" API = "API" TextBanking = "TextBanking" OpenBanking = "OpenBanking"
[docs] class UiSourceId(Enum): OnlineBanking = 1 VoiceBanking = 2 BackOffice = 3 Merchant = 4 Fax = 5 Notifications = 6 # 7 is skipped over in the DB schema for some reason API = 8 TextBanking = 9 OpenBanking = 10
[docs] class PasswordPolicyRow(TableRow): UISourceID: int PasswordPolicyID: int PasswordHistoryNumber: int MaxPasswordAge: int MinPasswordAge: int MaxPasswordLength: int MinPasswordLength: int NumbersRequired: int UpperCaseRequired: int LowerCaseRequired: int SpecialCharRequired: int InvalidAttempts: int InvalidAction: int LimitRepeating: int LimitAdjacent: int ExcludeCharList: str AutoResetHours: int NewPwdExpirationHours: int CQRCount: int CQRInvalidAttempts: int CaseSensitiveAnswer: int QuestionMinLength: int AnswerMinLength: int TACRequiredLostPwd: int TACTTLMinutes: int TACDeliveryViaVoice: int TACDeliveryViaEmail: int TACLength: int Description: str LoginMinLength: int LoginMaxLength: int DormantDays: int MlaMinLength: int MlaMaxLength: int MlaRequireAlpha: bool MlaRequireNumeric: bool TACDeliveryViaSMS: bool OobInvalidAttempts: int OobInvalidAction: int ExcludeLoginCharList: str LoginNumericRequired: bool LoginAlphaRequired: bool LoginSpecialCharRequired: bool
[docs] class PasswordPolicy(DbObject): # GET_BY_NAME_KEY = "column in the db response" NAME = "PasswordPolicy" REPRESENTATION_ROW_CLASS = PasswordPolicyRow
[docs] async def get( self, ui_source: UiSource, group_id: int = None ) -> list[PasswordPolicyRow]: """ Gets a password policy for a given ui source. :param: ui_source: OnlineBanking, VoiceBanking, TextBanking, etc. :param: group_id: An optional parameter used for getting policy data for different zones if applicable """ assert isinstance(ui_source, UiSource), ( "Please supply a valid user ui source object" ) sql_parameters = [ ExecuteStoredProcedure.SqlParam( ExecuteStoredProcedure.DataType.VarChar, "UiSource", ui_source.value ) ] if group_id: sql_parameters.append( ExecuteStoredProcedure.SqlParam( ExecuteStoredProcedure.DataType.Int, "GroupId", group_id ) ) return await self.call_hq( "sdk_GetPasswordPolicyWithZones", ExecuteStoredProcedure.SqlParameters(sql_parameters), )