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
                 ));
 }
Example #3
0
 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);
     }
 }
Example #4
0
        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;
        }
Example #5
0
        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>&nbsp;</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}&amp;ResetCode={RESET_CODE}</a></p>
    <p>&nbsp;</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>&nbsp;</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}&amp;ConfirmationCode={CONFIRMATION_CODE}</a></p>
    <p>&nbsp;</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);
        }
Example #8
0
        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;
 }
Example #13
0
 public bool CanDeleteTask(TaskeverUser user, Task task)
 {
     return (task.CreatorUserId == user.Id) || (task.AssignedUser.Id == user.Id);
 }
Example #14
0
 public bool CanSeeTasksOfUser(TaskeverUser requesterUser, TaskeverUser userOfTasks)
 {
     return requesterUser.Id == userOfTasks.Id ||
            _friendshipDomainService.HasFriendship(requesterUser, userOfTasks);
 }