private async Task SignInAsync(TaskeverUser user, bool isPersistent) { AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie); var identity = await _userManager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie); identity.AddClaim(new Claim(AbpClaimTypes.TenantId, "42")); AuthenticationManager.SignIn(new AuthenticationProperties { IsPersistent = isPersistent }, identity); }
public bool HasFriendship(TaskeverUser user, TaskeverUser probableFriend) { return _friendshipRepository.Query( //TODO: Create Index: UserId, FriendId, Status q => q.Any(friendship => friendship.User.Id == user.Id && friendship.Friend.Id == probableFriend.Id && friendship.Status == FriendshipStatus.Accepted )); }
public virtual bool CanBeAcceptedBy(TaskeverUser acceptorUser) { switch (Status) { case FriendshipStatus.Accepted: return true; case FriendshipStatus.WaitingApprovalFromUser: return User.Id == acceptorUser.Id; case FriendshipStatus.WaitingApprovalFromFriend: return Friend.Id == acceptorUser.Id; default: throw new NotImplementedException("Not implemented friendship status: " + Status); } }
public bool CanAssignTask(TaskeverUser assignerUser, TaskeverUser userToAssign) { if (assignerUser.Id == userToAssign.Id) //TODO: Override == to be able to write just assignerUser == userToAssign { return true; } var friendship = _friendshipRepository.GetOrNull(assignerUser.Id, userToAssign.Id, true); if (friendship == null) { return false; } return friendship.CanAssignTask; }
public static Friendship CreateAsRequest(TaskeverUser user, TaskeverUser friend) { if (user.Id == friend.Id) { throw new Exception("A user can not send request to the same user!"); } var friendShip = new Friendship { User = user, Status = FriendshipStatus.WaitingApprovalFromFriend, Friend = friend }; friendShip.CreatePair(); return friendShip; }
private void SendPasswordResetLinkEmail(TaskeverUser user) { var mail = new MailMessage(); mail.To.Add(user.EmailAddress); mail.IsBodyHtml = true; mail.Subject = "Password reset for Taskever"; mail.SubjectEncoding = Encoding.UTF8; var mailBuilder = new StringBuilder(); mailBuilder.Append( @"<!DOCTYPE html> <html lang=""en"" xmlns=""http://www.w3.org/1999/xhtml""> <head> <meta charset=""utf-8"" /> <title>{TEXT_HTML_TITLE}</title> <style> body { font-family: Verdana, Geneva, 'DejaVu Sans', sans-serif; font-size: 12px; } </style> </head> <body> <h3>{TEXT_WELCOME}</h3> <p>{TEXT_DESCRIPTION}</p> <p> </p> <p><a href=""http://www.taskever.com/Account/ResetPassword?UserId={USER_ID}&ResetCode={RESET_CODE}"">http://www.taskever.com/Account/ResetPassword?UserId={USER_ID}&ResetCode={RESET_CODE}</a></p> <p> </p> <p><a href=""http://www.taskever.com"">http://www.taskever.com</a></p> </body> </html>"); mailBuilder.Replace("{TEXT_HTML_TITLE}", "Password reset for Taskever"); mailBuilder.Replace("{TEXT_WELCOME}", "Reset your password on Taskever!"); mailBuilder.Replace("{TEXT_DESCRIPTION}", "Click the link below to reset your password on the Taskever.com"); mailBuilder.Replace("{USER_ID}", user.Id.ToString()); mailBuilder.Replace("{RESET_CODE}", user.PasswordResetCode); mail.Body = mailBuilder.ToString(); mail.BodyEncoding = Encoding.UTF8; _emailService.SendEmail(mail); }
private void SendConfirmationEmail(TaskeverUser user) { var mail = new MailMessage(); mail.To.Add(user.EmailAddress); mail.IsBodyHtml = true; mail.Subject = "Email confirmation for Taskever"; mail.SubjectEncoding = Encoding.UTF8; var mailBuilder = new StringBuilder(); mailBuilder.Append( @"<!DOCTYPE html> <html lang=""en"" xmlns=""http://www.w3.org/1999/xhtml""> <head> <meta charset=""utf-8"" /> <title>{TEXT_HTML_TITLE}</title> <style> body { font-family: Verdana, Geneva, 'DejaVu Sans', sans-serif; font-size: 12px; } </style> </head> <body> <h3>{TEXT_WELCOME}</h3> <p>{TEXT_DESCRIPTION}</p> <p> </p> <p><a href=""http://www.taskever.com/Account/ConfirmEmail?UserId={USER_ID}&ConfirmationCode={CONFIRMATION_CODE}"">http://www.taskever.com/Account/ConfirmEmail?UserId={USER_ID}&ConfirmationCode={CONFIRMATION_CODE}</a></p> <p> </p> <p><a href=""http://www.taskever.com"">http://www.taskever.com</a></p> </body> </html>"); mailBuilder.Replace("{TEXT_HTML_TITLE}", "Email confirmation for Taskever"); mailBuilder.Replace("{TEXT_WELCOME}", "Welcome to Taskever.com!"); mailBuilder.Replace("{TEXT_DESCRIPTION}", "Click the link below to confirm your email address and login to the Taskever.com"); mailBuilder.Replace("{USER_ID}", user.Id.ToString()); mailBuilder.Replace("{CONFIRMATION_CODE}", user.EmailConfirmationCode); mail.Body = mailBuilder.ToString(); mail.BodyEncoding = Encoding.UTF8; _emailService.SendEmail(mail); }
public virtual void AcceptBy(TaskeverUser acceptorUser) { if (IsAccepted()) { return; } if (!CanBeAcceptedBy(acceptorUser)) { throw new ApplicationException("This friendship can not be accepted by this user!"); } Status = FriendshipStatus.Accepted; if (Pair == null) { throw new Exception("Friendship pair is null!"); } Pair.AcceptBy(acceptorUser); }
public bool CanChangeFriendshipProperties(TaskeverUser user, Friendship friendShip) { //Can change only his own friendships. return user.Id == friendShip.User.Id; }
public bool CanRemoveFriendship(TaskeverUser currentUser, Friendship friendship) { return friendship.User.Id == currentUser.Id; }
public bool CanSeeProfile(TaskeverUser requesterUser, TaskeverUser targetUser) { return requesterUser.Id == targetUser.Id || _friendshipDomainService.HasFriendship(requesterUser, targetUser); }
public CompletedTaskNotification(Task task, TaskeverUser creatorUser) { Task = task; CreatorUser = creatorUser; }
public bool CanDeleteTask(TaskeverUser user, Task task) { return (task.CreatorUserId == user.Id) || (task.AssignedUser.Id == user.Id); }
public bool CanSeeTasksOfUser(TaskeverUser requesterUser, TaskeverUser userOfTasks) { return requesterUser.Id == userOfTasks.Id || _friendshipDomainService.HasFriendship(requesterUser, userOfTasks); }