public void AddToRoleAsync_UserIsInRole_DoesNotThrow() { var user = new User(mMembershipFakeFactory.UserEnabledWithEmail); var role = mMembershipFakeFactory.AdminRole; UserRoleInfoProvider.AddUserToRole(mMembershipFakeFactory.UserEnabledWithEmail, role); CMSAssert.All( () => Assert.IsNotNull(UserRoleInfoProvider.GetUserRoleInfo(user.Id, role.RoleID)), () => Assert.DoesNotThrow(() => mUserStore.AddToRoleAsync(user, role.RoleName).Wait())); }
public void IsInRoleAsync_UserInAllRoles_ExpectedResult() { var userInfo = mMembershipFakeFactory.UserEnabledWithEmail; UserRoleInfoProvider.AddUserToRole(userInfo, mMembershipFakeFactory.AdminRole); UserRoleInfoProvider.AddUserToRole(userInfo, mMembershipFakeFactory.MemberRole); var user = new User(userInfo); CMSAssert.All( async() => Assert.IsTrue(await mUserStore.IsInRoleAsync(user, MembershipFakeFactory.ROLE_ADMIN), "Admin role missing"), async() => Assert.IsTrue(await mUserStore.IsInRoleAsync(user, MembershipFakeFactory.ROLE_MEMBER), "Member role missing")); }
public void Roles_DisabledUserInAllRoles_AllRoleNames() { var userInfo = mMembershipFakeFactory.UserDisabledWithEmail; UserRoleInfoProvider.AddUserToRole(userInfo, mMembershipFakeFactory.AdminRole); UserRoleInfoProvider.AddUserToRole(userInfo, mMembershipFakeFactory.MemberRole); var user = new User(userInfo); CMSAssert.All( () => Assert.AreEqual(2, user.Roles.Count()), () => Assert.IsTrue(user.Roles.Contains(MembershipFakeFactory.ROLE_ADMIN), "Admin role missing"), () => Assert.IsTrue(user.Roles.Contains(MembershipFakeFactory.ROLE_MEMBER), "Member role missing")); }
public async Task GetRolesAsync_UserInAllRoles_AllRoleNames() { var userInfo = mMembershipFakeFactory.UserEnabledWithEmail; UserRoleInfoProvider.AddUserToRole(userInfo, mMembershipFakeFactory.AdminRole); UserRoleInfoProvider.AddUserToRole(userInfo, mMembershipFakeFactory.MemberRole); var user = new User(userInfo); var roles = await mUserStore.GetRolesAsync(user); CMSAssert.All( () => Assert.AreEqual(2, roles.Count), async() => Assert.IsTrue(await mUserStore.IsInRoleAsync(user, MembershipFakeFactory.ROLE_ADMIN), "Admin role missing"), async() => Assert.IsTrue(await mUserStore.IsInRoleAsync(user, MembershipFakeFactory.ROLE_MEMBER), "Member role missing")); }
public async Task RemoveFromRoleAsync_UserIsInRole_UserRoleInfoDeletedUserAndRoleExists() { var role = mMembershipFakeFactory.AdminRole; var user = new User(mMembershipFakeFactory.UserEnabledWithEmail); UserRoleInfoProvider.AddUserToRole(mMembershipFakeFactory.UserEnabledWithEmail, mMembershipFakeFactory.AdminRole); await mUserStore.RemoveFromRoleAsync(user, role.RoleName); CMSAssert.All( () => Assert.AreEqual(0, UserRoleInfoProvider.GetUserRoles().Count), () => Assert.IsNull(UserRoleInfoProvider.GetUserRoleInfo(user.Id, role.RoleID)), () => Assert.IsNotNull(RoleInfoProvider.GetRoleInfo(role.RoleID)), () => Assert.IsNotNull(UserInfoProvider.GetUserInfo(user.Id))); }
/// <summary> /// Adds <see cref="User"/> to <see cref="Role"/>. /// </summary> /// <param name="user">User entity.</param> /// <param name="roleName">Role name.</param> public Task AddToRoleAsync(User user, string roleName) { if (user == null) { throw new ArgumentNullException(nameof(user)); } if (String.IsNullOrWhiteSpace(roleName)) { throw new ArgumentException("Argument cannot be null or empty", nameof(roleName)); } UserRoleInfoProvider.AddUserToRole(user.Id, GetRoleByRoleName(roleName, SiteID).RoleID); return(Task.FromResult(0)); }
public async Task PasswordSignInAsync_CorrectCredentials_AdminUser_UserSignedIn(string userName, string password) { var user = UserInfoProvider.GetUserInfo(userName); UserRoleInfoProvider.AddUserToRole(user, mMembershipFakeFactory.AdminRole); var result = await mSignInManager.PasswordSignInAsync(user.UserName, password, false, false); var claims = mOwinContext.Authentication.AuthenticationResponseGrant.Identity.Claims; CMSAssert.All( () => Assert.AreEqual(SignInStatus.Success, result), () => Assert.AreEqual(5, claims.Count()), () => Assert.IsTrue(claims.Any(x => x.Value == user.UserID.ToString()), "ID claim missing"), () => Assert.IsTrue(claims.Any(x => x.Value == user.UserName), "Name claim missing"), () => Assert.IsTrue(claims.Any(x => x.Value == user.UserSecurityStamp), "Security stamp claim missing"), () => Assert.IsTrue(claims.Any(x => x.Value == MembershipFakeFactory.ROLE_ADMIN), "Role claim missing")); }
public async Task SignOut_CorrectCredentials_AdminUser_UserSignedInAndOut(string userName, string password) { var user = UserInfoProvider.GetUserInfo(userName); UserRoleInfoProvider.AddUserToRole(user, mMembershipFakeFactory.AdminRole); var signInResult = await mSignInManager.PasswordSignInAsync(user.UserName, password, false, false); var signedInClaimsCount = mOwinContext.Authentication.AuthenticationResponseGrant.Identity.Claims.Count(); mOwinContext.Authentication.SignOut(DefaultAuthenticationTypes.ApplicationCookie); CMSAssert.All( () => Assert.AreEqual(SignInStatus.Success, signInResult), () => Assert.AreEqual(5, signedInClaimsCount), () => Assert.IsNull(mOwinContext.Authentication.AuthenticationResponseGrant)); }
public async Task SignInAsync_AdminUser_UserSignedInUnconditionally(string userName, string password) { var userInfo = UserInfoProvider.GetUserInfo(userName); UserRoleInfoProvider.AddUserToRole(userInfo, mMembershipFakeFactory.AdminRole); var user = new User(userInfo); await mSignInManager.SignInAsync(user, false, false); var claims = mOwinContext.Authentication.AuthenticationResponseGrant.Identity.Claims; CMSAssert.All( () => Assert.AreEqual(5, claims.Count()), () => Assert.IsTrue(claims.Any(x => x.Value == user.Id.ToString()), "ID claim missing"), () => Assert.IsTrue(claims.Any(x => x.Value == user.UserName), "Name claim missing"), () => Assert.IsTrue(claims.Any(x => x.Value == user.SecurityStamp), "Security stamp claim missing"), () => Assert.IsTrue(claims.Any(x => x.Value == MembershipFakeFactory.ROLE_ADMIN), "Role claim missing")); }
/// <summary> /// Saves roles of specified user. /// </summary> private void SaveRoles(int userID) { // Load user's roles if (!currentRolesLoaded) { LoadCurrentRoles(); } // Remove old items string newValues = ValidationHelper.GetString(usRoles.Value, null); string items = DataHelper.GetNewItemsInList(newValues, currentValues); if (!String.IsNullOrEmpty(items)) { string[] newItems = items.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); if (newItems != null) { // Removes relationship between user and role foreach (string item in newItems) { int roleID = ValidationHelper.GetInteger(item, 0); UserRoleInfoProvider.RemoveUserFromRole(userID, roleID); } } } // Add new items items = DataHelper.GetNewItemsInList(currentValues, newValues); if (!String.IsNullOrEmpty(items)) { string[] newItems = items.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); if (newItems != null) { // Add relationship between user and role foreach (string item in newItems) { int roleID = ValidationHelper.GetInteger(item, 0); UserRoleInfoProvider.AddUserToRole(userID, roleID); } } } }
/// <summary> /// Assigns CMS and AD roles to user. /// </summary> /// <param name="user">AD user</param> /// <param name="userInfo">CMS user</param> /// <param name="userRoles">Collection of <see cref="RoleInfo"/> objects user is in – infos are supposed to contain RoleGUID.</param> /// <param name="site">CMS roles</param> /// <param name="siteInfo">Site info object</param> private static void SetMemberships(IPrincipalObject user, UserInfo userInfo, SiteInfo siteInfo, ICollection <RoleInfo> userRoles, KeyValuePair <string, List <Guid> > site) { var roleGuids = Enumerable.Empty <Guid>() .Union(site.Value) // CMS role GUIDs user should be in .Union(user.Groups); // AD role GUIDs user should be in (groups in which the user participates in AD and are imported to CMS) foreach (RoleInfo roleInfo in roleGuids .Except(userRoles.Select(userRole => userRole.RoleGUID)) .Select(groupId => RoleInfoProvider.GetRoleInfoByGUID(groupId, siteInfo.SiteID)) .Where(roleInfo => (roleInfo != null))) { // Add user to the role UserRoleInfoProvider.AddUserToRole(userInfo, roleInfo); // Update collection of user roles (to reflect real roles user is in) userRoles.Add(roleInfo); MessageLog.LogEvent(ResHelper.GetString("Log_AssigningUserToRole", userInfo.UserName, roleInfo.RoleDisplayName)); } }
public void SetUserRole(int UserID, string RoleName, string SiteName, bool RoleToggle) { var Role = _Helper.GetRole(RoleName, SiteName, new string[] { "RoleID" }); if (RoleToggle) { if (UserRoleInfoProvider.GetUserRoleInfo(UserID, Role.RoleID) == null) { UserRoleInfoProvider.AddUserToRole(UserID, Role.RoleID); } } else { var ExistingUserRole = UserRoleInfoProvider.GetUserRoleInfo(UserID, Role.RoleID); if (ExistingUserRole != null) { ExistingUserRole.Delete(); } } }
private void SaveUsers() { if (!MembershipContext.AuthenticatedUser.IsAuthorizedPerResource("CMS.Users", "ManageUserRoles")) { RedirectToAccessDenied("CMS.Users", "ManageUserRoles"); } bool falseValues = false; bool saved = false; StringBuilder errors = new StringBuilder(); // Remove old items string newValues = ValidationHelper.GetString(usUsers.Value, null); string items = DataHelper.GetNewItemsInList(newValues, currentValues); if (!String.IsNullOrEmpty(items)) { string[] newItems = items.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); if (newItems != null) { // Add all new items to user foreach (string item in newItems) { int userId = ValidationHelper.GetInteger(item, 0); // Check permissions string result = ValidateGlobalAndDeskAdmin(userId); if (result != String.Empty) { errors.AppendLine(result); falseValues = true; continue; } else { var uri = UserRoleInfoProvider.GetUserRoleInfo(userId, roleID); UserRoleInfoProvider.DeleteUserRoleInfo(uri); saved = true; } } } } // Add new items items = DataHelper.GetNewItemsInList(currentValues, newValues); if (!String.IsNullOrEmpty(items)) { string[] newItems = items.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); if (newItems != null) { DateTime dt = ValidationHelper.GetDateTime(hdnDate.Value, DateTimeHelper.ZERO_TIME); // Add all new items to user foreach (string item in newItems) { int userId = ValidationHelper.GetInteger(item, 0); // Check permissions string result = ValidateGlobalAndDeskAdmin(userId); if (result != String.Empty) { errors.AppendLine(result); falseValues = true; continue; } else { UserRoleInfoProvider.AddUserToRole(userId, roleID, dt); saved = true; } } } } if (errors.Length > 0) { ShowError(GetString("general.saveerror"), errors.ToString(), null); } if (falseValues) { currentValues = GetRoleUsers(); usUsers.Value = currentValues; } if (saved) { ShowChangesSaved(); } usUsers.Reload(true); }
private void SaveUsers() { if (!CMSContext.CurrentUser.IsAuthorizedPerResource("CMS.Users", "ManageUserRoles")) { RedirectToCMSDeskAccessDenied("CMS.Users", "ManageUserRoles"); } bool falseValues = false; bool saved = false; // Remove old items string newValues = ValidationHelper.GetString(usUsers.Value, null); string items = DataHelper.GetNewItemsInList(newValues, currentValues); if (!String.IsNullOrEmpty(items)) { string[] newItems = items.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); if (newItems != null) { // Add all new items to user foreach (string item in newItems) { int userId = ValidationHelper.GetInteger(item, 0); // Check permissions string result = ValidateGlobalAndDeskAdmin(userId); if (result != String.Empty) { lblError.Visible = true; lblError.Text += result; falseValues = true; continue; } else { UserRoleInfoProvider.RemoveUserFromRole(userId, roleID); saved = true; } } } } // Add new items items = DataHelper.GetNewItemsInList(currentValues, newValues); if (!String.IsNullOrEmpty(items)) { string[] newItems = items.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); if (newItems != null) { DateTime dt = ValidationHelper.GetDateTime(hdnDate.Value, DateTimeHelper.ZERO_TIME); // Add all new items to user foreach (string item in newItems) { int userId = ValidationHelper.GetInteger(item, 0); // Check permissions string result = ValidateGlobalAndDeskAdmin(userId); if (result != String.Empty) { lblError.Visible = true; lblError.Text += result; falseValues = true; continue; } else { UserRoleInfoProvider.AddUserToRole(userId, roleID, dt); saved = true; } } } } if (falseValues) { currentValues = GetRoleUsers(); usUsers.Value = currentValues; } if (saved) { lblInfo.Visible = true; lblInfo.Text = GetString("General.ChangesSaved"); } usUsers.Reload(true); }
/// <summary> /// Saves data. /// </summary> private void SaveData() { // Check "modify" permission if (!CMSContext.CurrentUser.IsAuthorizedPerResource("CMS.Users", "ManageUserRoles")) { RedirectToAccessDenied("CMS.Users", "Manage user roles"); } bool saved = false; string result = ValidateGlobalAndDeskAdmin(ui); if (result != String.Empty) { lblErrorDeskAdmin.Visible = true; lblErrorDeskAdmin.Text = result; return; } // Remove old items string newValues = ValidationHelper.GetString(usRoles.Value, null); string items = DataHelper.GetNewItemsInList(newValues, currentValues); this.lblInfo.Visible = false; if (!String.IsNullOrEmpty(items)) { string[] newItems = items.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); if (newItems != null) { // Add all new items to site foreach (string item in newItems) { int roleID = ValidationHelper.GetInteger(item, 0); UserRoleInfoProvider.RemoveUserFromRole(userId, roleID); } saved = true; } } // Add new items items = DataHelper.GetNewItemsInList(currentValues, newValues); if (!String.IsNullOrEmpty(items)) { string[] newItems = items.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); if (newItems != null) { DateTime dt = ValidationHelper.GetDateTime(hdnDate.Value, DateTimeHelper.ZERO_TIME); // Add all new items to site foreach (string item in newItems) { int roleID = ValidationHelper.GetInteger(item, 0); UserRoleInfoProvider.AddUserToRole(userId, roleID, dt); } saved = true; } } if (saved) { lblInfo.Visible = true; usRoles.Reload(true); } }
private void SaveUsers() { if (!CheckPermissions("cms.roles", PERMISSION_MODIFY)) { return; } bool falseValues = false; bool saved = false; // Remove old items string newValues = ValidationHelper.GetString(usUsers.Value, null); string items = DataHelper.GetNewItemsInList(newValues, currentValues); StringBuilder errorMessage = new StringBuilder(); if (!String.IsNullOrEmpty(items)) { string[] newItems = items.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); if (newItems != null) { // Add all new items to user foreach (string item in newItems) { int userId = ValidationHelper.GetInteger(item, 0); // Check permissions string result = ValidateGlobalAndDeskAdmin(userId); if (result != String.Empty) { errorMessage.Append(result); falseValues = true; continue; } else { UserRoleInfoProvider.RemoveUserFromRole(userId, RoleID); saved = true; } } } } // Add new items items = DataHelper.GetNewItemsInList(currentValues, newValues); if (!String.IsNullOrEmpty(items)) { string[] newItems = items.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); if (newItems != null) { // Add all new items to user foreach (string item in newItems) { int userId = ValidationHelper.GetInteger(item, 0); // Check permissions string result = ValidateGlobalAndDeskAdmin(userId); if (result != String.Empty) { errorMessage.Append(result); falseValues = true; continue; } else { UserRoleInfoProvider.AddUserToRole(userId, RoleID); saved = true; } } } } if (errorMessage.Length > 0) { ShowError(errorMessage.ToString()); } if (falseValues) { currentValues = GetRoleUsers(); usUsers.Value = currentValues; usUsers.Reload(); } if (saved) { ShowChangesSaved(); } }
/// <summary> /// Saves data. /// </summary> private void SaveData() { // Check "modify" permission if (!MembershipContext.AuthenticatedUser.IsAuthorizedPerResource("CMS.Users", "ManageUserRoles")) { RedirectToAccessDenied("CMS.Users", "Manage user roles"); } bool saved = false; string result = ValidateGlobalAndDeskAdmin(); if (result != String.Empty) { ShowError(result); return; } string selectorValues = ValidationHelper.GetString(usRoles.Value, null); // Remove old items string items = DataHelper.GetNewItemsInList(selectorValues, mCurrentValues); if (!String.IsNullOrEmpty(items)) { string[] newItems = items.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries); if (newItems.Any()) { // Remove all old items from site foreach (string item in newItems) { int roleID = ValidationHelper.GetInteger(item, 0); var uri = UserRoleInfoProvider.GetUserRoleInfo(mUserId, roleID); UserRoleInfoProvider.DeleteUserRoleInfo(uri); } saved = true; } } // Add new items items = DataHelper.GetNewItemsInList(mCurrentValues, selectorValues); if (!String.IsNullOrEmpty(items)) { string[] newItems = items.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries); if (newItems.Any()) { DateTime dt = ValidationHelper.GetDateTime(hdnDate.Value, DateTimeHelper.ZERO_TIME); // Add all new items to site foreach (string item in newItems) { int roleID = ValidationHelper.GetInteger(item, 0); UserRoleInfoProvider.AddUserToRole(mUserId, roleID, dt); } saved = true; } } if (saved) { ShowChangesSaved(); usRoles.Reload(true); } }
/// <summary> /// /// </summary> /// <param name="UserID"></param> /// <param name="RoleID"></param> private void HandleUserRole(int UserID, int RoleID) { UserRoleInfoProvider.AddUserToRole(UserID, RoleID); }