Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Password check #1297

Closed
wants to merge 45 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
ad6ed7d
Update validation.hpp
Josseye Feb 11, 2024
1731233
Update validation.hpp
Josseye Feb 11, 2024
9976d70
Update validation.hpp
Josseye Feb 11, 2024
b8f6e73
Update validation.hpp
Josseye Feb 11, 2024
638bcd7
Update validation.hpp
Josseye Feb 13, 2024
09e7e81
Update validation.hpp
Josseye Feb 13, 2024
4c68de5
Update validation.hpp
Josseye Feb 14, 2024
dab058e
Update validation.hpp
Josseye Feb 15, 2024
c4e4f65
Update validation.cpp
Josseye Feb 15, 2024
4dbc716
Update validation.cpp
Josseye Feb 15, 2024
46b51af
Update validation.hpp
Josseye Feb 15, 2024
af7643b
Update validation.hpp
Josseye Feb 15, 2024
62c228a
Update validation.cpp
Josseye Feb 15, 2024
ee533f6
Update validation.cpp
Josseye Feb 15, 2024
fc9915e
Update validation.hpp
Josseye Feb 15, 2024
b1b0439
Update validation.hpp
Josseye Feb 15, 2024
c0c16d2
Update validation.cpp
Josseye Feb 15, 2024
339acd8
Update validation.cpp
Josseye Feb 15, 2024
fe073bb
Update validation.hpp
Josseye Feb 15, 2024
b922d79
Update validation.hpp
Josseye Feb 15, 2024
82d979a
Update validation.hpp
Josseye Feb 15, 2024
86bbab0
Update validation.hpp
Josseye Feb 15, 2024
9a1753b
Update validation.cpp
Josseye Feb 15, 2024
361c595
Update validation.cpp
Josseye Feb 15, 2024
33f36f0
Update validation.cpp
Josseye Feb 15, 2024
782a60b
Update validation.cpp
Josseye Feb 15, 2024
67a875d
Update validation.hpp
Josseye Feb 15, 2024
282f8ad
Update validation.cpp
Josseye Feb 15, 2024
d306492
Update validation.hpp
Josseye Feb 15, 2024
aeb0b00
Update validation.hpp
Josseye Feb 15, 2024
2091c38
Update validation.cpp
Josseye Feb 15, 2024
96391ab
Update validation.cpp
Josseye Feb 16, 2024
2b133b9
Update validation.cpp
Josseye Feb 16, 2024
1c2b93f
Update validation.hpp
Josseye Feb 16, 2024
0dc6783
Update validation.hpp
Josseye Feb 16, 2024
c251519
Update validation.hpp
Josseye Feb 16, 2024
a387da8
Update validation.cpp
Josseye Feb 16, 2024
4b837fd
Update validation.cpp
Josseye Feb 16, 2024
968f43b
Update validation.cpp
Josseye Feb 16, 2024
42a2b93
Update validation.hpp
Josseye Feb 16, 2024
a1358fc
Update validation.hpp
Josseye Feb 16, 2024
00014d2
Update validation.cpp
Josseye Feb 16, 2024
10d2b0d
Update validation.cpp
Josseye Feb 16, 2024
5dd73f2
Update validation.cpp
Josseye Feb 16, 2024
c39e79c
Update validation.cpp
Josseye Feb 16, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
66 changes: 65 additions & 1 deletion homework/password-check/validation.cpp
Original file line number Diff line number Diff line change
@@ -1,2 +1,66 @@
#include "validation.hpp"
// TODO: Put implementations here
#include <cctype>
#include <iostream>
#include <string>

std::string getErrorMessage(ErrorCode faultcode) {
switch (faultcode) {
case ErrorCode::Ok:
return "Ok";
break;
case ErrorCode::PasswordNeedsAtLeastNineCharacters:
return "Password needs to have at least nine characters";
break;
case ErrorCode::PasswordNeedsAtLeastOneNumber:
return "Password needs to have at least one number";
break;
case ErrorCode::PasswordNeedsAtLeastOneSpecialCharacter:
return "Password needs to have at least one special character";
break;
case ErrorCode::PasswordNeedsAtLeastOneUppercaseLetter:
return "Password needs to have at least one uppercase letter";
break;
case ErrorCode::PasswordsDoNotMatch:
return "Passwords do not match";
break;
}
}

bool doPasswordsMatch(std::string psw1, std::string psw2) {
if (psw1 == psw2)
return true;
else
return false;
}

ErrorCode checkPasswordRules(std::string pass) {
bool OneNumber, OneUppercaseLetter, OneSpecialCharacter;
OneNumber = false;
OneUppercaseLetter = false;
OneSpecialCharacter = false;
if (pass.length() < 9)
return ErrorCode::PasswordNeedsAtLeastNineCharacters;
for (auto element : pass) {
if (isdigit(element))
OneNumber = true;
if (!isalnum(element))
OneSpecialCharacter = true;
if (isupper(element))
OneUppercaseLetter = true;
}
if (!OneNumber)
return ErrorCode::PasswordNeedsAtLeastOneNumber;
else if (!OneUppercaseLetter)
return ErrorCode::PasswordNeedsAtLeastOneUppercaseLetter;
else if (!OneSpecialCharacter)
return ErrorCode::PasswordNeedsAtLeastOneSpecialCharacter;
else
return ErrorCode::Ok;
}

ErrorCode checkPassword(std::string firstpassword, std::string secondpassword) {
if (!doPasswordsMatch(firstpassword, secondpassword))
return ErrorCode::PasswordsDoNotMatch;
else
return checkPasswordRules(firstpassword);
}
17 changes: 15 additions & 2 deletions homework/password-check/validation.hpp
Original file line number Diff line number Diff line change
@@ -1,2 +1,15 @@
// TODO: I'm empty :) Put enum and function headers here.
// Don't forget the header guard - #pragma once
#pragma once
#include <string>

enum class ErrorCode {
Ok,
PasswordNeedsAtLeastNineCharacters,
PasswordNeedsAtLeastOneNumber,
PasswordNeedsAtLeastOneSpecialCharacter,
PasswordNeedsAtLeastOneUppercaseLetter,
PasswordsDoNotMatch
};
std::string getErrorMessage(ErrorCode faultcode);
bool doPasswordsMatch(std::string psw1, std::string psw2);
ErrorCode checkPasswordRules(std::string pass);
ErrorCode checkPassword(std::string firstpassword, std::string secondpassword);
Loading