Skip to content
This repository has been archived by the owner on Sep 30, 2023. It is now read-only.

Commit

Permalink
HR-431 dependents being added to billing group
Browse files Browse the repository at this point in the history
  • Loading branch information
2j2e committed Aug 28, 2015
1 parent a271022 commit c59b043
Show file tree
Hide file tree
Showing 2 changed files with 37 additions and 14 deletions.
25 changes: 11 additions & 14 deletions HRI/Controllers/LoginSurfaceController.cs
Expand Up @@ -43,6 +43,7 @@ private ActionResult HandleLoginCore(LoginModel model)
{
try
{
var userService = new UserService();
var member = Services.MemberService.GetByUsername(model.Username);

// If the user is unable to login
Expand All @@ -59,8 +60,7 @@ private ActionResult HandleLoginCore(LoginModel model)
ModelState.AddModelError(
"loginModel",
string.Format("One more step! To ensure your privacy, we need to verify your email before you can log in - please check your email inbox for {0} and follow the directions to validate your account.", member.Email));

var userService = new UserService();

userService.SendVerificationEmail(model.Username);

return CurrentUmbracoPage();
Expand Down Expand Up @@ -112,28 +112,24 @@ private ActionResult HandleLoginCore(LoginModel model)

if (string.Compare(member.GetValue<string>("market"), "group", StringComparison.OrdinalIgnoreCase) == 0)
{
if (Roles.IsUserInRole(model.Username, "Billing"))
Roles.RemoveUserFromRole(model.Username, "Billing");
userService.RemoveFromRole(member.Username, "Billing");
}
else
{
if (!Roles.IsUserInRole(model.Username, "Billing") && Roles.IsUserInRole(model.Username, "Enrolled"))
Roles.AddUserToRole(model.Username, "Billing");
userService.AddToRole(member.Username, "Billing");
}

if (string.Compare(hriUser["SubscriberFlag"].ToString(), "Y", StringComparison.OrdinalIgnoreCase) == 0)
{
if (!Roles.IsUserInRole("Subscriber"))
Roles.AddUserToRole(model.Username, "Subscriber");
if (Roles.IsUserInRole("Dependent"))
Roles.RemoveUserFromRole(model.Username, "Dependent");
userService.AddToRole(member.Username, "Subscriber");
userService.RemoveFromRole(member.Username, "Dependent");
}
else
{
if (Roles.IsUserInRole(model.Username, "Subscriber"))
Roles.RemoveUserFromRole(model.Username, "Subscriber");
if (!Roles.IsUserInRole(model.Username, "Dependent"))
Roles.AddUserToRole(model.Username, "Dependent");
userService.AddToRole(member.Username, "Dependent");
userService.RemoveFromRole(member.Username, "Subscriber");
userService.RemoveFromRole(member.Username, "Billing");
}

// Keep Ms First Name and Last Name always up to date
Expand All @@ -159,7 +155,7 @@ private ActionResult HandleLoginCore(LoginModel model)
}
// Save Birthday, add user as enrolled
member.Properties.First(p => p.Alias == "birthday").Value = hriUser["DOB"].ToString();
Roles.AddUserToRole(model.Username, "Enrolled");
userService.AddToRole(model.Username, "Enrolled");

member.SetValue("enrollmentpageafterlogin", String.Empty);
}
Expand All @@ -175,6 +171,7 @@ private ActionResult HandleLoginCore(LoginModel model)
//redirect to current page by default
TempData["LoginSuccess"] = true;

// Redirect mobile requests to specific page
if (Request.Browser.IsMobileDevice)
return Redirect("/member-center/index-mobile");

Expand Down
26 changes: 26 additions & 0 deletions HRI/Services/UserService.cs
Expand Up @@ -6,6 +6,8 @@
using System.Net.Mail;
using System.Text;
using System.Web.Hosting;
using System.Web.Security;
using umbraco.cms.businesslogic;
using Umbraco.Core;
using Umbraco.Core.Services;

Expand All @@ -24,6 +26,30 @@ public UserService()
_mediaService = ApplicationContext.Current.Services.MediaService;
}

/// <summary>
/// Add user to the role
/// </summary>
/// <param name="username">Username</param>
/// <param name="role">User role</param>
public void AddToRole(string username, string role)
{
// Check should be always performed or exception will be fired
if (!Roles.IsUserInRole(username, role))
Roles.AddUserToRole(username, "role");
}

/// <summary>
/// Remove user from the role
/// </summary>
/// <param name="username">Username</param>
/// <param name="role">User role</param>
public void RemoveFromRole(string username, string role)
{
// Check should be always performed or exception will be fired
if (Roles.IsUserInRole(username, role))
Roles.RemoveUserFromRole(username, role);
}

public bool SendVerificationEmail(string userName)
{
if (_memberService.GetByUsername(userName) != null)
Expand Down

0 comments on commit c59b043

Please sign in to comment.