vgquotes/Src/VideoGameQuotes.Api/User.cs

33 lines
964 B
C#
Raw Permalink Normal View History

2011-02-09 00:05:32 +00:00
using System;
using Portoa.Logging;
using Portoa.Persistence;
using Portoa.Security;
namespace VideoGameQuotes.Api {
2011-03-07 20:56:34 +00:00
public class User : Entity<int>, IPasswordProtected {
2011-02-09 00:05:32 +00:00
private readonly IPasswordProtected passwordProtector = new NullAllowingPasswordProtector();
public User() {
Created = DateTime.UtcNow;
}
2011-02-09 00:05:32 +00:00
public virtual DateTime Created { get; set; }
public virtual string Username { get; set; }
public virtual string IpAddress { get; set; }
2011-02-09 00:05:32 +00:00
public virtual UserGroup Group { get; set; }
public virtual void ChangePassword([DoNotLog]string newPassword) {
passwordProtector.ChangePassword(newPassword);
}
public virtual bool VerifyPassword([DoNotLog]string potentialPassword) {
return passwordProtector.VerifyPassword(potentialPassword);
}
}
public static class UserExtensions {
public static string GetUsernameOrIp(this User user) {
return user.Username ?? user.IpAddress;
}
}
2011-02-09 00:05:32 +00:00
}