You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
149 lines
3.8 KiB
149 lines
3.8 KiB
#include "employeeLogin.c"
|
|
|
|
#include "createEmployeeAccount.h"
|
|
|
|
bool isValidEmployeeID(const char* employeeId, int maximumStringLength)
|
|
{
|
|
int employeeIdLength = strlen(employeeId);
|
|
|
|
for(int i=0;i<employeeIdLength;i++)
|
|
{
|
|
if(employeeId[i]==' ')
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
return employeeIdLength <= maximumStringLength ;
|
|
}
|
|
|
|
|
|
bool isValidPassword( char *password, int minimumLength)
|
|
{
|
|
/*created a pointer(*stringpointer) which helps loop through characters of the string password*/
|
|
char *stringpointer = password;
|
|
bool letterFound = false, symbolFound = false, numberFound = false;
|
|
|
|
while(*stringpointer!='\0')
|
|
{
|
|
if(isalpha(* stringpointer))
|
|
{
|
|
letterFound = true;
|
|
}
|
|
else if(isdigit(* stringpointer))
|
|
{
|
|
numberFound = true;
|
|
}
|
|
else if(ispunct(* stringpointer))
|
|
{
|
|
symbolFound = true;
|
|
}
|
|
if( strlen(password) >= minimumLength && letterFound && numberFound && symbolFound)
|
|
{
|
|
return true;
|
|
}
|
|
++stringpointer;
|
|
}
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
int StringLengthCounter(char* string)
|
|
{
|
|
int characterCounter = 0;
|
|
int i = 0;
|
|
while(string[i] !='\0')
|
|
{
|
|
characterCounter++;
|
|
++i;
|
|
}
|
|
string[characterCounter] = '\0';
|
|
return characterCounter;
|
|
}
|
|
|
|
bool verifyPassword(char* enteredPassword,char* passwordConfirmation)
|
|
{
|
|
if(strcmp(enteredPassword,passwordConfirmation)==0)
|
|
{
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
bool createNewEmployee(char* employeeId, char* employeePassword)
|
|
{
|
|
FILE* employeesFile;
|
|
employeesFile = fopen("src/employeesCredentialsList.txt","a");
|
|
|
|
if(employeesFile == NULL)
|
|
{
|
|
printf("Error: could not find the list of Employees");
|
|
return false;
|
|
}
|
|
|
|
fprintf(employeesFile,"\n%s %s\n",employeeId,employeePassword);
|
|
fclose(employeesFile);
|
|
|
|
/*used the checkEmployeeCredentials to check if the new id and password are created successfully*/
|
|
|
|
return checkEmployeeCredentials(employeeId, employeePassword);
|
|
}
|
|
|
|
|
|
void getNewEmployeeCredentials()
|
|
{
|
|
|
|
const int Length = 21;
|
|
char employeeId[Length];
|
|
const int minimumPasswordLength = 5;
|
|
char employeePassword[Length];
|
|
char passwordVerfication[Length];
|
|
printf("please enter your wished Id :\n");
|
|
|
|
/*Added the regular expression [^\n] so that the string keep on getting read until a newline '\n' is found*/
|
|
|
|
scanf(" %[^\n]s",employeeId);
|
|
|
|
employeeId[Length] = '\0';
|
|
|
|
printf("\nplease enter your wished Password :\n");
|
|
|
|
scanf("%s",employeePassword);
|
|
|
|
employeePassword[strlen(employeePassword)] = '\0';
|
|
|
|
printf("\nplease confirm your Password :\n");
|
|
|
|
scanf("%s",passwordVerfication);
|
|
|
|
passwordVerfication[strlen(employeePassword)] = '\0';
|
|
|
|
if(verifyPassword(passwordVerfication,employeePassword))
|
|
{
|
|
|
|
if(isValidEmployeeID(employeeId,Length) && isValidPassword(employeePassword,minimumPasswordLength))
|
|
{
|
|
createNewEmployee(employeeId,employeePassword) ? printf("\n\n Account created successfully !\n\n") : printf("\n\n Could not create the Account please contact an employee of clearance 1 !\n\n");
|
|
}
|
|
|
|
else if(isValidEmployeeID(employeeId,Length) && !isValidPassword(employeePassword,minimumPasswordLength))
|
|
{
|
|
printf("Error : the entered password should be at least 5 characters long and should contain at least 1 digit, 1 alphabet and 1 symbol!");
|
|
}
|
|
|
|
else
|
|
{
|
|
printf("Error : the entered ID should contain a maximum of 20 letters");
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
printf("the Verification password and the entered password dont match");
|
|
}
|
|
}
|
|
|