-
Notifications
You must be signed in to change notification settings - Fork 644
/
User.cs
55 lines (50 loc) · 1.65 KB
/
User.cs
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
using System;
using System.Collections.Generic;
namespace NuGetGallery
{
public class User : IEntity
{
public User()
: this(null, null)
{
}
public User(
string username,
string hashedPassword)
{
HashedPassword = hashedPassword;
Messages = new HashSet<EmailMessage>();
Username = username;
}
public int Key { get; set; }
public Guid ApiKey { get; set; }
public string EmailAddress { get; set; }
public string UnconfirmedEmailAddress { get; set; }
public string HashedPassword { get; set; }
public string PasswordHashAlgorithm { get; set; }
public virtual ICollection<EmailMessage> Messages { get; set; }
public string Username { get; set; }
public virtual ICollection<Role> Roles { get; set; }
public bool EmailAllowed { get; set; }
public bool Confirmed
{
get
{
return !String.IsNullOrEmpty(EmailAddress);
}
}
public string EmailConfirmationToken { get; set; }
public string PasswordResetToken { get; set; }
public DateTime? PasswordResetTokenExpirationDate { get; set; }
public void ConfirmEmailAddress()
{
if (String.IsNullOrEmpty(UnconfirmedEmailAddress))
{
throw new InvalidOperationException("User does not have an email address to confirm");
}
EmailAddress = UnconfirmedEmailAddress;
EmailConfirmationToken = null;
UnconfirmedEmailAddress = null;
}
}
}