-
Notifications
You must be signed in to change notification settings - Fork 2
/
Users.cpp
123 lines (105 loc) · 2.14 KB
/
Users.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
#include "header.h"
void User::operator=(const User& P)
{
admin=P.admin;
id=P.id;
pw=P.pw;
}
void User::SET_PRM()
{
if(!U_Type)
{
p[0]=1;
p[1]=0; //create, rename, delete
p[2]=0;
}
else
{
p[0]=1;
p[1]=1;
p[2]=1;
}
}
int User::Sign_up()
{
User P;
cout<<"\n User ID : ";
cin.ignore();
getline(cin,P.id);
cout<<"Password : ";
getline(cin,P.pw);
for(int i=0;i<Log.size();i++)
if(P.id==Log[i].id)
return 1; //Username already exists!
cout<<"Account Type: ";
cin>>P.admin;
if(P.admin)
{
P.admin=0;
cin.ignore();
if(Admin_access())
P.admin=1;
else
return 2;
}
Log.push_back(P);
return 0;
}
int User::Sign_in()
{
string Uid,Upw;
cout<<"\n User ID : ";
cin.ignore();
getline(cin,Uid);
cout<<"Password : ";
getline(cin,Upw);
for(int i=0;i<Log.size();i++)
if(Uid==Log[i].id)
{
if(Upw!=Log[i].pw)
return 2; //Incorrect Password!
U=Log[i];
U_Type=U.admin;
SET_PRM();
return 0;
}
return 1; //No such user found!
}
void User::Sign_out(string &s)
{
U_Type=-1;
cout<<"\n\n\n\t\t\tGoodbye !!!!!";
s="Signed Out!";
}
int User::Admin_access()
{
int i;
string w;
cout<<"\nEnter Admin Password: ";
getline(cin,w);
for(i=0;i<Log.size();i++)
if(Log[i].admin)
if(Log[i].pw==w)
return 1;
return 0; //Incorrect Admin Password!
}
int User::change()
{
string Uid,Upw,New;
cout<<"\n User ID : ";
cin.ignore();
getline(cin,Uid);
cout<<"Password : ";
getline(cin,Upw);
for(int i=0;i<Log.size();i++)
if(Uid==Log[i].id)
{
if(Upw!=Log[i].pw)
return 2; //Incorrect Password!
cout<<"New Password : ";
getline(cin,New);
Log[i].pw=New;
return 0;
}
return 1; //No such user found!
}