예제 #1
0
        private async Task <Role> DetermineUserRoleAsync(string userId, ADServiceClient client)
        {
            bool badd      = false;
            bool bmanage   = false;
            var  eSettings = _wtContext.EnvironmentSettings.FirstOrDefault();

            string[] addRequestsADGroups    = eSettings.AddRequestsADGroup.Split(';');
            string[] manageRequestsADGroups = eSettings.ManageRequestsADGroup.Split(';');
            var      groups = await client.GetUserGroupsByNetworkIdAsync(userId, "true");

            foreach (ADGroup group in groups)
            {
                try
                {
                    foreach (var adGroup in addRequestsADGroups)
                    {
                        if (group.Name.ToLower().Trim() == adGroup.ToLower().Trim())
                        {
                            badd = true;
                        }
                    }
                    foreach (var adGroup in manageRequestsADGroups)
                    {
                        if (group.Name.ToLower().Trim() == adGroup.ToLower().Trim())
                        {
                            bmanage = true;
                        }
                    }
                }
                catch (Exception e)
                { }
            }
            if (bmanage)
            {
                return(Role.Manage);
            }
            else if (badd)
            {
                return(Role.Add);
            }
            else
            {
                return(Role.View);
            }
        }
예제 #2
0
        public async Task <IEnumerable <UserViewModel> > SearchUsers(string searchTerm)
        {
            var userVMs = new List <UserViewModel>();

            if (!string.IsNullOrEmpty(searchTerm))
            {
                ADServiceClient client = new ADServiceClient();
                var             users  = await client.GetUserInfoExtendedByLastNameStartsWithAsync(searchTerm, "10");

                for (int i = 0; i <= users.Length - 1; i++)
                {
                    userVMs.Add(new UserViewModel()
                    {
                        displayName = users[i].FullName, email = users[i].Email, userId = users[i].NetworkId
                    });
                }
            }
            return(userVMs);
        }
예제 #3
0
        public async Task <ServiceCallResult <UserViewModel> > GetCurrentUser()
        {
            ADServiceClient client = new ADServiceClient();
            IIdentity       id     = User.Identity;
            //var user = await client.GetUserInfoExtendedByNetworkIdStartsWithAsync(id.GetLogin(), "1");
            var user = await client.GetUserInfoExtendedByNetworkIdStartsWithAsync("CCC27", "1");

            var uvm = new UserViewModel();

            if (user != null && user.Length > 0)
            {
                uvm.displayName = user[0].FullName;
                uvm.userId      = user[0].NetworkId;
                uvm.email       = user[0].Email;
                uvm.Role        = await DetermineUserRoleAsync(id.GetLogin(), client);

                uvm.Role = await DetermineUserRoleAsync("CCC27", client);
            }


            return(ServiceCallResult <UserViewModel> .CreateSuccessResult("User Found", uvm));
        }