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;
 }
Exemple #3
0
        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);
        }
Exemple #5
0
 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.");
 }