Exemplo n.º 1
0
        /// <summary>
        /// Set user manager.
        /// </summary>
        /// <param name="userPrincipalName">User UPN.</param>
        /// <param name="managerUserPrincipalName">Manager UPN.</param>
        /// <param name="strErrors">Error return value.</param>
        /// <returns>set object</returns>
        public bool SetUserManager(string userPrincipalName, string managerUserPrincipalName, ref string strErrors)
        {
            // construct URI, method, and managerLink
            string  updateManagerURI = this.graphCall.BaseGraphUri + "/users/" + userPrincipalName + "/$links/manager?" + this.graphCall.ApiVersion;
            urlLink managerlink      = new urlLink();
            string  method;

            if (managerUserPrincipalName != "NO MANAGER")
            {
                AadUser manager = this.graphCall.getUser(managerUserPrincipalName, ref strErrors);
                if (manager == null)
                {
                    return(false);
                }

                managerlink.url = this.graphCall.BaseGraphUri + "/directoryObjects/" + manager.objectId;
                method          = "PUT";
            }
            else
            {
                managerlink.url = null;
                method          = "DELETE";
            }

            return(this.graphCall.updateLink(updateManagerURI, method, managerlink, ref strErrors));
        }
        /// <summary>
        /// get users manager
        /// </summary>
        /// <param name="strUpn">user UPN</param>
        /// <returns>manager UPN</returns>
        public string GetUsersManager(string strUpn)
        {
            string  strErrors = string.Empty;
            AadUser manager   = this.graphCall.GetUsersManager(strUpn, ref strErrors);

            if (manager != null)
            {
                return(manager.userPrincipalName);
            }
            else
            {
                return("NO MANAGER");
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// Create user (including extension attributes).  Foreach loop adds extension properties to object before calling CreateUserJSON.
        /// </summary>
        /// <param name="user">User object containing values to be set on new object.</param>
        /// <param name="strErrors">Error return value.</param>
        /// <returns>created user</returns>
        public JObject CreateUser(JObject user, ref string strErrors)
        {
            // setup AadUser with standard attributes, accountEnabled, and password profile
            AadUser aadUser = new AadUser();

            aadUser.userPrincipalName = (string)user["userPrincipalName"];
            aadUser.displayName       = (string)user["displayName"];
            aadUser.mailNickname      = (string)user["mailNickname"];
            aadUser.jobTitle          = (string)user["jobTitle"];
            aadUser.passwordProfile   = new passwordProfile();
            aadUser.accountEnabled    = true;
            aadUser.passwordProfile.forceChangePasswordNextLogin = true;
            aadUser.passwordProfile.password = "******";

            // convert to JObject
            JsonSerializerSettings jsonSettings = new JsonSerializerSettings();

            jsonSettings.NullValueHandling    = NullValueHandling.Ignore;
            jsonSettings.DefaultValueHandling = DefaultValueHandling.Ignore;
            JsonSerializer serializer = JsonSerializer.CreateDefault(jsonSettings);
            JObject        newUser    = JObject.FromObject(aadUser, serializer);

            // add supported extension values
            foreach (JProperty property in user.Properties())
            {
                // exclude unsupported attributes added by application logic
                if (property.Name == "isManager" || property.Name == "managerUserPrincipalName")
                {
                    // skip
                }
                else if (property.Name.StartsWith(DirectoryExtensions.ExtensionPropertyPrefix))
                {
                    newUser[property.Name] = property.Value;
                }
            }

            // create user
            newUser = this.graphCall.CreateUserJSON(newUser, ref strErrors);

            // set manager
            if (newUser != null)
            {
                newUser["managerUserPrincipalName"] = user["managerUserPrincipalName"];
                newUser = this.SetUser(newUser, ref strErrors);
            }

            return(newUser);
        }
Exemplo n.º 4
0
        public async Task <AadUser> UpdateUserAsync(AadUser u)
        {
            await _repo.UpdateUserAsync(new AadUserEntity(u.TenantId, u.NameIdentifier, u.Upn));

            return(u);
        }