public ActionResult Edit(User user, string emailAlias, string selectedDomain) { ValidateUserForEdit(user, emailAlias); if (ModelState.IsValid) { // Fetch the user object from the service and overwrite the properties from the updated object // we got from the view. User refreshedUser = DirectoryService.users.Where(it => (it.objectId == user.objectId)).SingleOrDefault(); // Save the changes to User object and then write the File stream // for Thumbnail photo in case it has been updated by the user. refreshedUser.userPrincipalName = string.Format(CultureInfo.InvariantCulture, "{0}@{1}", emailAlias, selectedDomain); refreshedUser.mailNickname = emailAlias; CopyPropertyValuesFromViewObject(user, refreshedUser); DirectoryService.UpdateObject(refreshedUser); DirectoryService.SaveChanges(SaveChangesOptions.PatchOnUpdate); if (!String.IsNullOrEmpty(Request.Files[0].FileName)) { // Write the photo file to the Graph service. Debug.Assert(Request.Files.Keys[0] == "photofile"); DirectoryService.SetSaveStream(refreshedUser, "thumbnailPhoto", Request.Files["photofile"].InputStream, true, "image/jpg"); DirectoryService.SaveChanges(SaveChangesOptions.PatchOnUpdate); } return RedirectToAction("Index"); } else { var verifiedDomains = DirectoryService.tenantDetails.Single().verifiedDomains.ToList(); var verifiedDomainValues = verifiedDomains.Select(it => it.name); ViewData["selectedDomain"] = new SelectList(verifiedDomainValues); } return View(user); }
public static WAAD.User ToWaadUser(this UserToCreate user, string domain) { // Setting required WAAD fields here based on what we were given var waadUser = new WAAD.User { accountEnabled = true, displayName = user.Name, mailNickname = user.MailNickName, passwordProfile = new WAAD.PasswordProfile { forceChangePasswordNextLogin = false, password = user.Password }, userPrincipalName = String.Format("{0}@{1}",user.MailNickName,"chrisdir.onmicrosoft.com") }; return waadUser; }
public DummyDataSource() { this.Groups = new ObservableCollection<Group>(); for(int i = 0; i < 10; i++) { var grp = new Group(); grp.displayName = Guid.NewGuid().ToString(); grp.description = "my stupid groups desciptions is here"; this.Groups.Add(grp); } this.Users = new ObservableCollection<User>(); for (int i = 0; i < 10; i++) { var usr = new User(); usr.displayName = Guid.NewGuid().ToString(); this.Users.Add(usr); } }
public ActionResult Create(User user, string emailAlias, string selectedDomain) { ValidateUserForCreate(user, emailAlias); if (ModelState.IsValid) { user.userPrincipalName = string.Format(CultureInfo.InvariantCulture,"{0}@{1}", emailAlias, selectedDomain); user.mailNickname = emailAlias; DirectoryService.AddTousers(user); DirectoryService.SaveChanges(); return RedirectToAction("Index"); } else { // If the request was not valid, re-populate the verified domains list. var verifiedDomains = DirectoryService.tenantDetails.Single().verifiedDomains.ToList(); var verifiedDomainValues = verifiedDomains.Select(it => it.name); ViewData["selectedDomain"] = new SelectList(verifiedDomainValues); } return View(user); }
public void Init(User group) { this.User = group; }
/// <summary> /// Used to construct an AD user tasks object /// </summary> public ActiveDirectoryUser(string upn) { _request = new ActiveDirectoryRequest(ActiveDirectoryProperties.GetActiveDirectoryProperties()); // TODO: put a check in here to make sure that config == the upn after @ _user = GetByUpn(upn); }
/// <summary> /// Validate User object for Edit requests. /// </summary> private void ValidateUserForEdit(User user, string emailAlias) { //ModelValidationHelper.ValidateStringProperty(ModelState, user.displayName, "DisplayName", "DisplayName is required."); //ModelValidationHelper.ValidateStringProperty(ModelState, emailAlias, "UserPrincipalName", "UserPrincipalName is required."); //ModelValidationHelper.ValidateProperty(ModelState, user.accountEnabled, "AccountEnabled", "AccountEnabled is required."); }
/// <summary> /// Copies the property values from the object passed in by the view to the object that was re-fetched from Graph Service. /// </summary> /// <param name="user"></param> /// <param name="refreshedUser"></param> private static void CopyPropertyValuesFromViewObject(User user, User refreshedUser) { refreshedUser.displayName = user.displayName; refreshedUser.accountEnabled = user.accountEnabled; if (user.passwordProfile.password != null) { refreshedUser.passwordProfile = new PasswordProfile(); refreshedUser.passwordProfile.password = user.passwordProfile.password; refreshedUser.passwordProfile.forceChangePasswordNextLogin = user.passwordProfile.forceChangePasswordNextLogin; } refreshedUser.city = user.city; refreshedUser.country = user.country; refreshedUser.department = user.department; refreshedUser.facsimileTelephoneNumber = user.facsimileTelephoneNumber; refreshedUser.givenName = user.givenName; refreshedUser.jobTitle = user.jobTitle; refreshedUser.lastDirSyncTime = user.lastDirSyncTime; refreshedUser.mail = user.mail; refreshedUser.mobile = user.mobile; refreshedUser.passwordPolicies = user.passwordPolicies; refreshedUser.physicalDeliveryOfficeName = user.physicalDeliveryOfficeName; refreshedUser.postalCode = user.postalCode; refreshedUser.preferredLanguage = user.preferredLanguage; refreshedUser.state = user.state; refreshedUser.streetAddress = user.streetAddress; refreshedUser.surname = user.surname; refreshedUser.telephoneNumber = user.telephoneNumber; refreshedUser.usageLocation = user.usageLocation; }
/// <summary> /// Helper method for adding an object to users collection. /// </summary> /// <param name="group"></param> public void AddTousers(User user) { base.AddObject("directoryObjects", user); }
/// <summary> /// Validate User object for Create requests. /// </summary> private void ValidateUserForCreate(User user, string emailAlias) { ValidateUserForEdit(user, emailAlias); ModelValidationHelper.ValidateStringProperty(ModelState, user.passwordProfile.password, "Password", "Password is required."); }