1/* 2 * Copyright 2023, Andrew Lindesay <apl@lindesay.co.nz>. 3 * All rights reserved. Distributed under the terms of the MIT License. 4 */ 5 6 7#include "PasswordRequirements.h" 8 9// These are keys that are used to store this object's data into a BMessage 10// instance. 11 12#define KEY_MIN_PASSWORD_LENGTH "minPasswordLength" 13#define KEY_MIN_PASSWORD_UPPERCASE_CHAR "minPasswordUppercaseChar" 14#define KEY_MIN_PASSWORD_DIGITS_CHAR "minPasswordDigitsChar" 15 16 17PasswordRequirements::PasswordRequirements() 18 : 19 fMinPasswordLength(0), 20 fMinPasswordUppercaseChar(0), 21 fMinPasswordDigitsChar(0) 22{ 23} 24 25 26PasswordRequirements::PasswordRequirements(BMessage* from) 27 : 28 fMinPasswordLength(0), 29 fMinPasswordUppercaseChar(0), 30 fMinPasswordDigitsChar(0) 31{ 32 uint32 value; 33 34 if (from->FindUInt32(KEY_MIN_PASSWORD_LENGTH, &value) == B_OK) { 35 fMinPasswordLength = value; 36 } 37 38 if (from->FindUInt32( 39 KEY_MIN_PASSWORD_UPPERCASE_CHAR, &value) == B_OK) { 40 fMinPasswordUppercaseChar = value; 41 } 42 43 if (from->FindUInt32( 44 KEY_MIN_PASSWORD_DIGITS_CHAR, &value) == B_OK) { 45 fMinPasswordDigitsChar = value; 46 } 47} 48 49 50PasswordRequirements::~PasswordRequirements() 51{ 52} 53 54 55void 56PasswordRequirements::SetMinPasswordLength(uint32 value) 57{ 58 fMinPasswordLength = value; 59} 60 61 62void 63PasswordRequirements::SetMinPasswordUppercaseChar(uint32 value) 64{ 65 fMinPasswordUppercaseChar = value; 66} 67 68 69void 70PasswordRequirements::SetMinPasswordDigitsChar(uint32 value) 71{ 72 fMinPasswordDigitsChar = value; 73} 74 75 76status_t 77PasswordRequirements::Archive(BMessage* into, bool deep) const 78{ 79 status_t result = B_OK; 80 if (result == B_OK) { 81 result = into->AddUInt32( 82 KEY_MIN_PASSWORD_LENGTH, fMinPasswordLength); 83 } 84 if (result == B_OK) { 85 result = into->AddUInt32( 86 KEY_MIN_PASSWORD_UPPERCASE_CHAR, fMinPasswordUppercaseChar); 87 } 88 if (result == B_OK) { 89 result = into->AddUInt32( 90 KEY_MIN_PASSWORD_DIGITS_CHAR, fMinPasswordDigitsChar); 91 } 92 return result; 93} 94