From 4218cc27a7ee7d752fbb572067bc8a9eac381500 Mon Sep 17 00:00:00 2001 From: PancernyJez Date: Tue, 2 Jul 2024 03:42:33 +0200 Subject: [PATCH 1/9] Update validation.hpp --- homework/password-check/validation.hpp | 71 +++++++++++++++++++++++++- 1 file changed, 69 insertions(+), 2 deletions(-) diff --git a/homework/password-check/validation.hpp b/homework/password-check/validation.hpp index 85160868..a9dc452a 100644 --- a/homework/password-check/validation.hpp +++ b/homework/password-check/validation.hpp @@ -1,2 +1,69 @@ -// TODO: I'm empty :) Put enum and function headers here. -// Don't forget the header guard - #pragma once \ No newline at end of file +#pragma once +#include +#include +#include + +enum class ErrorCode { + Ok, + PasswordNeedsAtLeastNineCharacters, + PasswordNeedsAtLeastOneNumber, + PasswordNeedsAtLeastOneSpecialCharacter, + PasswordNeedsAtLeastOneUppercaseLetter, + PasswordsDoNotMatch +}; + +std::string getErrorMessage(ErrorCode const error) { + switch (error) { + default: + return ""; + + case ErrorCode::Ok: + return "Ok\n"; + + case ErrorCode::PasswordNeedsAtLeastNineCharacters: + return "Error: PasswordNeedsAtLeastNineCharacters\n"; + + case ErrorCode::PasswordNeedsAtLeastOneNumber: + return "Error: PasswordNeedsAtLeastOneNumber\n"; + + case ErrorCode::PasswordNeedsAtLeastOneSpecialCharacter: + return "Error: PasswordNeedsAtLeastOneSpecialCharacter\n"; + + case ErrorCode::PasswordNeedsAtLeastOneUppercaseLetter: + return "Error: PasswordNeedsAtLeastOneUppercaseLetter\n"; + + case ErrorCode::PasswordsDoNotMatch: + return "Error: PasswordsDoNotMatch\n"; + } +} + +bool doPasswordsMatch(const std::string &password1, const std::string &password2) { + if (password1 == password2) { + return true; + } else { + return false; + } +} + +ErrorCode checkPasswordRules(const std::string &password) { + // first i will try to check if theres at least 9 characters + if (password.length() < 9) { + return ErrorCode::PasswordNeedsAtLeastNineCharacters; + } + // if predycate if there is none of the numbers rerturn errorcode + else if (std::none_of(password.begin(), password.end(), [](char c) { return std::isdigit(c); })) { + return ErrorCode::PasswordNeedsAtLeastOneNumber; + } else if (std::none_of(password.begin(), password.end(), [](char c) { return std::isupper(c); })) { + return ErrorCode::PasswordNeedsAtLeastOneUppercaseLetter; + } else if (std::none_of(password.begin(), password.end(), [](char c) { return std::ispunct(c); })) { + return ErrorCode::PasswordNeedsAtLeastOneSpecialCharacter; + } else + return ErrorCode::Ok; +} + +ErrorCode checkPassword(const std::string &password1, const std::string &password2) { + if (doPasswordsMatch(password1, password2)) + return checkPasswordRules(password1); + else + return ErrorCode::PasswordsDoNotMatch; +} From 65cf7e9daaa759f089d815594b28dd70fadfceac Mon Sep 17 00:00:00 2001 From: PancernyJez Date: Tue, 2 Jul 2024 03:49:06 +0200 Subject: [PATCH 2/9] Update validation2.hpp --- homework/password-check/validation.hpp | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/homework/password-check/validation.hpp b/homework/password-check/validation.hpp index a9dc452a..78680e82 100644 --- a/homework/password-check/validation.hpp +++ b/homework/password-check/validation.hpp @@ -1,7 +1,6 @@ #pragma once #include #include -#include enum class ErrorCode { Ok, @@ -21,19 +20,19 @@ std::string getErrorMessage(ErrorCode const error) { return "Ok\n"; case ErrorCode::PasswordNeedsAtLeastNineCharacters: - return "Error: PasswordNeedsAtLeastNineCharacters\n"; + return "PasswordNeedsAtLeastNineCharacters"; case ErrorCode::PasswordNeedsAtLeastOneNumber: - return "Error: PasswordNeedsAtLeastOneNumber\n"; + return "PasswordNeedsAtLeastOneNumber"; case ErrorCode::PasswordNeedsAtLeastOneSpecialCharacter: - return "Error: PasswordNeedsAtLeastOneSpecialCharacter\n"; + return "PasswordNeedsAtLeastOneSpecialCharacter"; case ErrorCode::PasswordNeedsAtLeastOneUppercaseLetter: - return "Error: PasswordNeedsAtLeastOneUppercaseLetter\n"; + return "PasswordNeedsAtLeastOneUppercaseLetter"; case ErrorCode::PasswordsDoNotMatch: - return "Error: PasswordsDoNotMatch\n"; + return "PasswordsDoNotMatch"; } } @@ -50,7 +49,6 @@ ErrorCode checkPasswordRules(const std::string &password) { if (password.length() < 9) { return ErrorCode::PasswordNeedsAtLeastNineCharacters; } - // if predycate if there is none of the numbers rerturn errorcode else if (std::none_of(password.begin(), password.end(), [](char c) { return std::isdigit(c); })) { return ErrorCode::PasswordNeedsAtLeastOneNumber; } else if (std::none_of(password.begin(), password.end(), [](char c) { return std::isupper(c); })) { From 8786eeac79591a9513bf04b21e798109e83427e4 Mon Sep 17 00:00:00 2001 From: PancernyJez Date: Tue, 2 Jul 2024 03:52:11 +0200 Subject: [PATCH 3/9] Update validation3.hpp --- homework/password-check/validation.hpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/homework/password-check/validation.hpp b/homework/password-check/validation.hpp index 78680e82..1e41fc96 100644 --- a/homework/password-check/validation.hpp +++ b/homework/password-check/validation.hpp @@ -1,6 +1,7 @@ #pragma once #include #include +#include enum class ErrorCode { Ok, @@ -49,6 +50,7 @@ ErrorCode checkPasswordRules(const std::string &password) { if (password.length() < 9) { return ErrorCode::PasswordNeedsAtLeastNineCharacters; } + // if predycate if there is none of the numbers rerturn errorcode else if (std::none_of(password.begin(), password.end(), [](char c) { return std::isdigit(c); })) { return ErrorCode::PasswordNeedsAtLeastOneNumber; } else if (std::none_of(password.begin(), password.end(), [](char c) { return std::isupper(c); })) { From d6b696bc4ff350dfd276c514c97f9d9315822f4b Mon Sep 17 00:00:00 2001 From: PancernyJez Date: Tue, 2 Jul 2024 04:03:06 +0200 Subject: [PATCH 4/9] Update validation.cpp --- homework/password-check/validation.cpp | 56 +++++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) diff --git a/homework/password-check/validation.cpp b/homework/password-check/validation.cpp index a2f12ff3..dbc75a3f 100644 --- a/homework/password-check/validation.cpp +++ b/homework/password-check/validation.cpp @@ -1,2 +1,56 @@ #include "validation.hpp" -// TODO: Put implementations here \ No newline at end of file +std::string getErrorMessage(ErrorCode error) { + switch (error) { + default: + return ""; + + case ErrorCode::Ok: + return "Ok"; + + case ErrorCode::PasswordNeedsAtLeastNineCharacters: + return "PasswordNeedsAtLeastNineCharacters"; + + case ErrorCode::PasswordNeedsAtLeastOneNumber: + return "PasswordNeedsAtLeastOneNumber"; + + case ErrorCode::PasswordNeedsAtLeastOneSpecialCharacter: + return "PasswordNeedsAtLeastOneSpecialCharacter"; + + case ErrorCode::PasswordNeedsAtLeastOneUppercaseLetter: + return "PasswordNeedsAtLeastOneUppercaseLetter"; + + case ErrorCode::PasswordsDoNotMatch: + return "PasswordsDoNotMatch"; + } +} + +bool doPasswordsMatch(const std::string &password1, const std::string &password2) { + if (password1 == password2) { + return true; + } else { + return false; + } +} + +ErrorCode checkPasswordRules(const std::string &password) { + // first i will try to check if theres at least 9 characters + if (password.length() < 9) { + return ErrorCode::PasswordNeedsAtLeastNineCharacters; + } + // if predycate if there is none of the numbers rerturn errorcode + else if (std::none_of(password.begin(), password.end(), [](char c) { return std::isdigit(c); })) { + return ErrorCode::PasswordNeedsAtLeastOneNumber; + } else if (std::none_of(password.begin(), password.end(), [](char c) { return std::isupper(c); })) { + return ErrorCode::PasswordNeedsAtLeastOneUppercaseLetter; + } else if (std::none_of(password.begin(), password.end(), [](char c) { return std::ispunct(c); })) { + return ErrorCode::PasswordNeedsAtLeastOneSpecialCharacter; + } else + return ErrorCode::Ok; +} + +ErrorCode checkPassword(const std::string &password1, const std::string &password2) { + if (doPasswordsMatch(password1, password2)) + return checkPasswordRules(password1); + else + return ErrorCode::PasswordsDoNotMatch; +} From 1b1fad243d2c5002a1eb2f3df82bba8dda3d46c2 Mon Sep 17 00:00:00 2001 From: PancernyJez Date: Tue, 2 Jul 2024 04:03:27 +0200 Subject: [PATCH 5/9] Update validation.hpp --- homework/password-check/validation.hpp | 64 +++----------------------- 1 file changed, 6 insertions(+), 58 deletions(-) diff --git a/homework/password-check/validation.hpp b/homework/password-check/validation.hpp index 1e41fc96..4286b867 100644 --- a/homework/password-check/validation.hpp +++ b/homework/password-check/validation.hpp @@ -1,7 +1,7 @@ #pragma once -#include -#include #include +#include "cctype" +#include "algorithm" enum class ErrorCode { Ok, @@ -11,59 +11,7 @@ enum class ErrorCode { PasswordNeedsAtLeastOneUppercaseLetter, PasswordsDoNotMatch }; - -std::string getErrorMessage(ErrorCode const error) { - switch (error) { - default: - return ""; - - case ErrorCode::Ok: - return "Ok\n"; - - case ErrorCode::PasswordNeedsAtLeastNineCharacters: - return "PasswordNeedsAtLeastNineCharacters"; - - case ErrorCode::PasswordNeedsAtLeastOneNumber: - return "PasswordNeedsAtLeastOneNumber"; - - case ErrorCode::PasswordNeedsAtLeastOneSpecialCharacter: - return "PasswordNeedsAtLeastOneSpecialCharacter"; - - case ErrorCode::PasswordNeedsAtLeastOneUppercaseLetter: - return "PasswordNeedsAtLeastOneUppercaseLetter"; - - case ErrorCode::PasswordsDoNotMatch: - return "PasswordsDoNotMatch"; - } -} - -bool doPasswordsMatch(const std::string &password1, const std::string &password2) { - if (password1 == password2) { - return true; - } else { - return false; - } -} - -ErrorCode checkPasswordRules(const std::string &password) { - // first i will try to check if theres at least 9 characters - if (password.length() < 9) { - return ErrorCode::PasswordNeedsAtLeastNineCharacters; - } - // if predycate if there is none of the numbers rerturn errorcode - else if (std::none_of(password.begin(), password.end(), [](char c) { return std::isdigit(c); })) { - return ErrorCode::PasswordNeedsAtLeastOneNumber; - } else if (std::none_of(password.begin(), password.end(), [](char c) { return std::isupper(c); })) { - return ErrorCode::PasswordNeedsAtLeastOneUppercaseLetter; - } else if (std::none_of(password.begin(), password.end(), [](char c) { return std::ispunct(c); })) { - return ErrorCode::PasswordNeedsAtLeastOneSpecialCharacter; - } else - return ErrorCode::Ok; -} - -ErrorCode checkPassword(const std::string &password1, const std::string &password2) { - if (doPasswordsMatch(password1, password2)) - return checkPasswordRules(password1); - else - return ErrorCode::PasswordsDoNotMatch; -} +std::string getErrorMessage(ErrorCode error); +bool doPasswordsMatch(const std::string &password1, const std::string &password2); +ErrorCode checkPasswordRules(const std::string &password) ; +ErrorCode checkPassword(const std::string &password1, const std::string &password2); From 78bfe60f6390dda3d296fbd8f77ed932387e61e5 Mon Sep 17 00:00:00 2001 From: PancernyJez Date: Tue, 2 Jul 2024 04:07:52 +0200 Subject: [PATCH 6/9] Update validation.cpp --- homework/password-check/validation.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/homework/password-check/validation.cpp b/homework/password-check/validation.cpp index dbc75a3f..03000684 100644 --- a/homework/password-check/validation.cpp +++ b/homework/password-check/validation.cpp @@ -1,4 +1,5 @@ -#include "validation.hpp" +#include "validation.h" + std::string getErrorMessage(ErrorCode error) { switch (error) { default: @@ -8,19 +9,19 @@ std::string getErrorMessage(ErrorCode error) { return "Ok"; case ErrorCode::PasswordNeedsAtLeastNineCharacters: - return "PasswordNeedsAtLeastNineCharacters"; + return "Password needs at least nine characters"; case ErrorCode::PasswordNeedsAtLeastOneNumber: - return "PasswordNeedsAtLeastOneNumber"; + return "Password needs at least one number"; case ErrorCode::PasswordNeedsAtLeastOneSpecialCharacter: - return "PasswordNeedsAtLeastOneSpecialCharacter"; + return "Password needs at least one special character"; case ErrorCode::PasswordNeedsAtLeastOneUppercaseLetter: - return "PasswordNeedsAtLeastOneUppercaseLetter"; + return "Password needs at least one uppercase letter"; case ErrorCode::PasswordsDoNotMatch: - return "PasswordsDoNotMatch"; + return "Passwords do not match"; } } From ebca57a31d6ae2f156931466dc4884cc113f49cb Mon Sep 17 00:00:00 2001 From: PancernyJez Date: Tue, 2 Jul 2024 04:10:15 +0200 Subject: [PATCH 7/9] Update validationkewk.cpp --- homework/password-check/validation.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/homework/password-check/validation.cpp b/homework/password-check/validation.cpp index 03000684..089b126c 100644 --- a/homework/password-check/validation.cpp +++ b/homework/password-check/validation.cpp @@ -1,4 +1,4 @@ -#include "validation.h" +#include "validation.hpp" std::string getErrorMessage(ErrorCode error) { switch (error) { From 88ebb058f178aa0e545c8551576bf1120f7a52c2 Mon Sep 17 00:00:00 2001 From: PancernyJez Date: Sat, 6 Jul 2024 21:00:53 +0200 Subject: [PATCH 8/9] Update validationlolololololo.hpp --- homework/password-check/validation.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/homework/password-check/validation.hpp b/homework/password-check/validation.hpp index 4286b867..9a9c6fd6 100644 --- a/homework/password-check/validation.hpp +++ b/homework/password-check/validation.hpp @@ -1,7 +1,7 @@ #pragma once #include -#include "cctype" -#include "algorithm" +#include +#include enum class ErrorCode { Ok, From 5c13bf7fb66be1e2f6ed071b4372a72cdf74a0e3 Mon Sep 17 00:00:00 2001 From: PancernyJez Date: Sat, 6 Jul 2024 21:04:57 +0200 Subject: [PATCH 9/9] Update validationfgndfjkngjk.cpp --- homework/password-check/validation.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/homework/password-check/validation.cpp b/homework/password-check/validation.cpp index 089b126c..98b43d78 100644 --- a/homework/password-check/validation.cpp +++ b/homework/password-check/validation.cpp @@ -9,16 +9,16 @@ std::string getErrorMessage(ErrorCode error) { return "Ok"; case ErrorCode::PasswordNeedsAtLeastNineCharacters: - return "Password needs at least nine characters"; + return "Password needs to have at least nine characters"; case ErrorCode::PasswordNeedsAtLeastOneNumber: - return "Password needs at least one number"; + return "Password needs to have at least one number"; case ErrorCode::PasswordNeedsAtLeastOneSpecialCharacter: - return "Password needs at least one special character"; + return "Password needs to have at least one special character"; case ErrorCode::PasswordNeedsAtLeastOneUppercaseLetter: - return "Password needs at least one uppercase letter"; + return "Password needs to have at least one uppercase letter"; case ErrorCode::PasswordsDoNotMatch: return "Passwords do not match"; @@ -34,11 +34,11 @@ bool doPasswordsMatch(const std::string &password1, const std::string &password2 } ErrorCode checkPasswordRules(const std::string &password) { - // first i will try to check if theres at least 9 characters + if (password.length() < 9) { return ErrorCode::PasswordNeedsAtLeastNineCharacters; } - // if predycate if there is none of the numbers rerturn errorcode + else if (std::none_of(password.begin(), password.end(), [](char c) { return std::isdigit(c); })) { return ErrorCode::PasswordNeedsAtLeastOneNumber; } else if (std::none_of(password.begin(), password.end(), [](char c) { return std::isupper(c); })) {