5
5
using System . Web ;
6
6
using System . Web . Mvc ;
7
7
using DevOne . Security . Cryptography . BCrypt ;
8
+ using System . Text . RegularExpressions ;
8
9
9
10
namespace PosteroOrg . Mural . Controllers
10
11
{
@@ -38,25 +39,62 @@ public ActionResult Login(string username, string password)
38
39
if ( user != null && BCryptHelper . CheckPassword ( password , user . Password ) )
39
40
{
40
41
Session [ "User" ] = user ;
42
+ Alert ( "Você foi autenticado com sucesso." , type : "success" ) ;
43
+ }
44
+ else
45
+ {
46
+ Alert ( "Note que ambos os campos diferenciam letras maiúsculas e minúsculas." , "Não reconhecemos suas credenciais." , "danger" ) ;
41
47
}
42
48
}
49
+ else
50
+ {
51
+ Alert ( "Parece que você esqueceu de informar seu usuário ou sua senha." , "Ops." , "danger" ) ;
52
+ }
43
53
return RedirectToAction ( "" ) ;
44
54
}
45
55
46
56
// POST: /register
47
57
[ HttpPost ]
48
58
public ActionResult Register ( string username , string password , string passwordCheck )
49
59
{
50
- if ( ! String . IsNullOrWhiteSpace ( username ) && db . Users . Find ( username ) == null && ! String . IsNullOrWhiteSpace ( password ) && password == passwordCheck )
60
+ if ( ! String . IsNullOrWhiteSpace ( username ) && ! String . IsNullOrWhiteSpace ( password ) )
51
61
{
52
- User user = new User ( ) {
53
- Username = username . Trim ( ) ,
54
- Password = BCryptHelper . HashPassword ( password , BCryptHelper . GenerateSalt ( ) ) ,
55
- DtRegister = DateTimeOffset . Now
56
- } ;
57
- db . Users . Add ( user ) ;
58
- db . SaveChanges ( ) ;
59
- Session [ "User" ] = user ;
62
+ if ( password == passwordCheck )
63
+ {
64
+ if ( Regex . IsMatch ( username , @"^[a-zA-Z0-9_]{6,}$" ) && Regex . IsMatch ( password , @"(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,}" ) )
65
+ {
66
+ if ( db . Users . Find ( username ) == null )
67
+ {
68
+ User user = new User ( )
69
+ {
70
+ Username = username . Trim ( ) ,
71
+ Password = BCryptHelper . HashPassword ( password , BCryptHelper . GenerateSalt ( ) ) ,
72
+ DtRegister = DateTimeOffset . Now
73
+ } ;
74
+ db . Users . Add ( user ) ;
75
+ db . SaveChanges ( ) ;
76
+ Session [ "User" ] = user ;
77
+ Alert ( "Você foi cadastrado com sucesso." , "Bem vindo." , "success" ) ;
78
+ }
79
+ else
80
+ {
81
+ Alert ( "Parece que alguém já escolheu esse nome de usuário." , "Usuário já existe." , "danger" ) ;
82
+ }
83
+ }
84
+ else
85
+ {
86
+ Alert ( "Note que sua senha deve ter pelo menos um número, uma letra maiúscula, uma letra minúscula e 8 caractéres ou mais. E escolha seu nome de usuário utilizando apenas caractéres alfanuméricos e traço baixo, e deve ter pelo menos 6 caractéres." , "Informações inválidas." , "danger" ) ;
87
+ }
88
+ }
89
+ else
90
+ {
91
+ Alert ( "Parece que você sua senha não confere com a confirmação." , "Ops." , "danger" ) ;
92
+ }
93
+
94
+ }
95
+ else
96
+ {
97
+ Alert ( "Parece que você esqueceu de informar um nome de usuário ou uma senha." , "Ops." , "danger" ) ;
60
98
}
61
99
return RedirectToAction ( "" ) ;
62
100
}
@@ -65,6 +103,7 @@ public ActionResult Register(string username, string password, string passwordCh
65
103
public ActionResult Logout ( )
66
104
{
67
105
Session [ "User" ] = null ;
106
+ Alert ( "Você foi desconectado com sucesso." , "Desconectado." ) ;
68
107
return RedirectToAction ( "" ) ;
69
108
}
70
109
@@ -76,15 +115,33 @@ public ActionResult New(string note)
76
115
if ( Session [ "User" ] != null && ! String . IsNullOrWhiteSpace ( note ) )
77
116
{
78
117
User user = db . Users . Find ( ( Session [ "User" ] as User ) . Username ) ;
79
- user . Notes . Add ( new Note ( ) {
118
+ user . Notes . Add ( new Note ( )
119
+ {
80
120
PureContent = note ,
81
121
DtNote = DateTimeOffset . Now
82
122
} ) ;
83
123
db . SaveChanges ( ) ;
124
+ Alert ( "Sua nova nota foi registrada com sucesso." , "Salvo." , "success" ) ;
125
+ }
126
+ else
127
+ {
128
+ Alert ( "Parece que você esqueceu de escrever a nota." , "Ops." , "danger" ) ;
84
129
}
85
130
return RedirectToAction ( "" ) ;
86
131
}
87
132
133
+ protected void Alert ( string message , string title = "" , string type = "" )
134
+ {
135
+ var alerts = TempData [ "Alerts" ] != null ? ( List < Models . Alert > ) TempData [ "Alerts" ] : new List < Models . Alert > ( ) ;
136
+ alerts . Add ( new Models . Alert
137
+ {
138
+ Message = message ,
139
+ Title = title ,
140
+ Type = type
141
+ } ) ;
142
+ TempData [ "Alerts" ] = alerts ;
143
+ }
144
+
88
145
protected override void Dispose ( bool disposing )
89
146
{
90
147
if ( disposing )
0 commit comments