public IDictionary<string, User> GetDirectoryUsers() { IDictionary<string, User> users = new Dictionary<string, User>(); try { IList<DirectoryUser> directoryUsers = _directoryReader.GetUsers(); logger.Info(directoryUsers.Count + " directory members retrieved."); //Get the Ldapuser data into a Provisioning.User collection. foreach (DirectoryUser directoryUser in directoryUsers) { string userName = directoryUser.Username.ToLowerInvariant(); if (!users.ContainsKey(userName)) { User user = new User(); user.Username = directoryUser.Username; user.FullName = directoryUser.FullName; user.Email = directoryUser.Email; user.Nickname = directoryUser.Nickname; users.Add(userName, user); logger.Debug("Member retrieved from directory: " + user.Username); } else { logger.Error("Duplicate username found in directory: " + directoryUser.Username + "; ignoring user with duplicate username."); } } } catch (Exception ex) { logger.ErrorException("Error retrieving users from Directory", ex); throw; } return users; }
public void DeleteVersionOneMember(User userToDelete) { string uname = userToDelete.Username; try { Oid memberOid = userToDelete.V1MemberAsset.Oid; IOperation deleteMember = _model.GetOperation(V1Constants.DELETE); _services.ExecuteOperation(deleteMember, memberOid); logger.Info("Member with username '" + uname + "' has been DELETED in the VersionOne system."); } catch (Exception ex) { logger.ErrorException( "Attempt to delete Member with username '" + uname + "' in the VersionOne system has FAILED.", ex); } }
public void ReactivateVersionOneMember(User userToReactivate) { /*** * Reactivation is subject to a few parameters set in configuration. * These determine the user's Project Access, Default Role, and Password upon reactivation. ****/ string username = userToReactivate.Username; Oid memberOid = userToReactivate.V1MemberAsset.Oid; try { Asset member = userToReactivate.V1MemberAsset; //Reactivate the user IOperation reactivateMember = _model.GetOperation(V1Constants.REACTIVATE); _services.ExecuteOperation(reactivateMember, memberOid); //Assign the user a new password IAttributeDefinition passwordAttribute = _model.GetAttributeDefinition(V1Constants.PASSWORD); string newPassword = GeneratePassword(username); member.SetAttributeValue(passwordAttribute, newPassword); _services.Save(member); _smtpAdapter.SendUserNotification(username, newPassword, userToReactivate.Email); logger.Info("Member with username '" + username + "' has been REACTIVATED in the VersionOne system."); } catch (Exception ex) { logger.ErrorException( "Attempt to reactivate Member with username '" + username + "' in the VersionOne system has FAILED." + ex, ex); } }
private void NotifyUser(User user, string username, string password) { try { _smtpAdapter.SendUserNotification(username, password, user.Email); } catch (Exception error) { logger.Error("Failed to send notification to user: "******": " + error.Message); } }
private void CreateNewVersionOneMember(User user) { string username = user.Username; string password = ""; if (!UseIntegratedAuthorization()) { password = GeneratePassword(username); } try { IAssetType memberType = _model.GetAssetType(V1Constants.MEMBER); Asset newMember = _services.New(memberType, null); IAttributeDefinition usernameAttribute = memberType.GetAttributeDefinition("Username"); IAttributeDefinition passwordAttribute = memberType.GetAttributeDefinition("Password"); IAttributeDefinition nameAttribute = memberType.GetAttributeDefinition("Name"); IAttributeDefinition nicknameAttribute = memberType.GetAttributeDefinition("Nickname"); IAttributeDefinition emailAttribute = memberType.GetAttributeDefinition("Email"); IAttributeDefinition defaultRoleAttribute = memberType.GetAttributeDefinition("DefaultRole"); newMember.SetAttributeValue(usernameAttribute, username); newMember.SetAttributeValue(passwordAttribute, password); newMember.SetAttributeValue(nameAttribute, user.FullName); newMember.SetAttributeValue(nicknameAttribute, user.Nickname); newMember.SetAttributeValue(emailAttribute, user.Email); newMember.SetAttributeValue(defaultRoleAttribute, this._defaultRole); _services.Save(newMember); user.V1MemberAsset = newMember; logger.Info("Member with username '" + username + "' has been CREATED in the VersionOne system."); NotifyUser(user, username, password); } catch (Exception ex) { logger.ErrorException( "Attempt to create Member with username '" + username + "' in the VersionOne system has FAILED.", ex); } }
private void DeactivateVersionOneMember(User user) { string username = user.Username; try { IOperation inactivateMember = _model.GetOperation(V1Constants.INACTIVATE); Oid deactivatedOid = _services.ExecuteOperation(inactivateMember, user.V1MemberAsset.Oid); logger.Info("Member with username '" + username + "' has been DEACTIVATED in the VersionOne system."); } catch (Exception ex) { logger.ErrorException( "Attempt to deactivate Member with username '" + username + "' in the VersionOne system has FAILED.", ex); } }
private IDictionary<string, User> BuildV1UsersList(AssetList versionOneUsers) { IDictionary<string, User> v1Usernames = new Dictionary<string, User>(); IAttributeDefinition usernameAttribute = _model.GetAttributeDefinition(V1Constants.USERNAME); IAttributeDefinition isInactiveAttribute = _model.GetAttributeDefinition(V1Constants.ISINACTIVE); IAttributeDefinition ckInactivate = _model.GetAttributeDefinition(V1Constants.CHECKINACTIVATE); foreach (Asset userinV1 in versionOneUsers) { User v1User = new User(); object usernameAttributeValue = userinV1.GetAttribute(usernameAttribute).Value; if (usernameAttributeValue != null) { v1User.Username = usernameAttributeValue.ToString().Trim(); v1User.V1MemberAsset = userinV1; v1User.CheckInactivate = bool.Parse(userinV1.GetAttribute(ckInactivate).Value.ToString()); v1User.IsInactive = bool.Parse(userinV1.GetAttribute(isInactiveAttribute).Value.ToString()); v1Usernames.Add(v1User.Username.ToLowerInvariant(), v1User); } } return v1Usernames; }