Beispiel #1
0
        public void NewFuncBroker(dynamic psObject, List <CollectionUser> userList)
        {
            var user1 = new CollectionUser();

            user1.ConnectionBroker = psObject.ConnectionBroker as string;
            userList.Add(user1);
        }
Beispiel #2
0
        public void NewFunc(dynamic psObject, List <CollectionUser> userList)
        {
            var users = new CollectionUser();

            users.Name = psObject.UserPrincipalName;
            userList.Add(users);
        }
Beispiel #3
0
        public ActionResult Create([FromBody] LoginViewModel model)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    if (model.Register)
                    {
                        CollectionUser user = _userManager.FindByEmailAsync(model.Email).Result;

                        if (user == null)
                        {
                            user = new CollectionUser()
                            {
                                FirstName = model.FirstName
                                ,
                                LastName = model.LastName
                                ,
                                Email = model.Email
                                ,
                                UserName = model.Email
                            };
                        }

                        var result = _userManager.CreateAsync(user, model.Password).Result;
                        if (!result.Succeeded)
                        {
                            return(BadRequest("Failed to create a new user"));
                        }
                    }
                    else
                    {
                        var result = _signInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, false).Result;

                        if (result.Succeeded)
                        {
                            return(Ok());
                        }
                        else
                        {
                            ModelState.AddModelError(String.Empty, "Failed to login");
                            return(BadRequest(ModelState));
                        }
                    }
                    return(Ok());
                }
                else
                {
                    return(BadRequest(ModelState));
                }
            }
            catch (Exception ex)
            {
                _logger.LogError($"Error on creating a new user: {ex.Message}");
                return(BadRequest($"Error on creating a new user: {ex.Message}"));
            }
        }
Beispiel #4
0
        public CollectionUser ToCollectionUser()
        {
            var collection = new CollectionUser
            {
                ReadOnly     = ReadOnly,
                CollectionId = new Guid(CollectionId)
            };

            return(collection);
        }
Beispiel #5
0
        public void NewFunclogin(dynamic psObject, List <CollectionUser> userList)
        {
            //var users = psObject.UserGroup as string[];

            var user1 = new CollectionUser();

            user1.UserType         = psObject.Status as string;
            user1.ConnectionBroker = psObject.ConnectionBroker as string;
            userList.Add(user1);
        }
Beispiel #6
0
        public async Task <CollectionUser> Register(CollectionUser user, string password)
        {
            byte[] passwordHash, passwordSalt;
            CreatePasswordHash(password, out passwordHash, out passwordSalt);
            user.PasswordHash = passwordHash;
            user.PasswordSalt = passwordSalt;

            // TODO: need to regen the EF code for Users DbSet()
            await _db.CollectionUsers.AddAsync(user);

            await _db.SaveChangesAsync();

            return(user);
        }
Beispiel #7
0
        static void Main()
        {
            CollectionUser myCollection = new CollectionUser();

            // Используем foreach, для обращения к каждому объекту Element внутри массива myCollection.
            foreach (Element element in myCollection)
            {
                Console.WriteLine("Name: {0}  Field1: {1} Field2: {2}", element.Name, element.Field1, element.Field2);
            }

            //myCollection.Reset(); // Убрать комментарий для проверки.

            Console.Write(new string('-', 29) + "\n");

            // Используем foreach, для повторного обращения к каждому объекту Element внутри массива myCollection.
            foreach (Element element in myCollection)
            {
                Console.WriteLine("Name: {0}  Field1: {1} Field2: {2}", element.Name, element.Field1, element.Field2);
            }

            Console.Write(new string('-', 29) + "\n");


            // ----------------------------------------------------------------------------------------------------------------------
            // Так работает foreach.

            CollectionUser myElementsCollection = new CollectionUser();

            // foreach - приводит коллекцию к интерфейсному типу IEnumerable.
            IEnumerable enumerable = myElementsCollection as IEnumerable;

            // foreach - приводит коллекцию к интерфейсному типу вызывая метод - GetEnumerator().
            IEnumerator enumerator = enumerable.GetEnumerator();


            while (enumerator.MoveNext()) // Перемещаем курсор на 1 шаг вперед (с -1 на 0) и т.д.
            {
                Element element = enumerator.Current as Element;

                Console.WriteLine("Name: {0}  Field1: {1} Field2: {2}", element.Name, element.Field1, element.Field2);
            }


            enumerator.Reset();

            // Задержка.
            Console.ReadKey();
        }
Beispiel #8
0
        public async Task <IActionResult> Register(UserForRegisterDto userForRegisterDto)
        {
            // validate request

            userForRegisterDto.Username = userForRegisterDto.Username.ToLower();
            if (await _repo.UserExists(userForRegisterDto.Username))
            {
                return(BadRequest("Username already exists."));
            }

            var userToCreate = new CollectionUser
            {
                UserName = userForRegisterDto.Username
            };

            var createdUser = await _repo.Register(userToCreate, userForRegisterDto.Password);

            return(StatusCode(201));  // TODO: will return CreatedAtRoute which also passes back a 201
        }
Beispiel #9
0
        public void NewFunc(dynamic psObject, List <CollectionUser> userList)
        {
            //var users = psObject.UserGroup as string[];

            var user1 = new CollectionUser();

            user1.Name     = psObject.Name as string;
            user1.UserType = psObject.Type as string;
            user1.Count    = psObject.Count;
            userList.Add(user1);

            /*
             *          if (users != null)
             *          {
             *              foreach (string userName in users)
             *              {
             *                  var user = new CollectionUser();
             *                  user.Name = userName;
             *                  //user.Type = "userType";
             *                  userList.Add(user); ;
             *              }
             *          }
             */
        }
        public async void CreateAsync_BumpsOrgUserAccountRevisionDates(Cipher cipher, List <User> users,
                                                                       List <OrganizationUser> orgUsers, Collection collection, Organization org, List <EfRepo.CipherRepository> suts, List <EfRepo.UserRepository> efUserRepos, List <EfRepo.OrganizationRepository> efOrgRepos,
                                                                       List <EfRepo.OrganizationUserRepository> efOrgUserRepos, List <EfRepo.CollectionRepository> efCollectionRepos)
        {
            var savedCiphers = new List <Cipher>();

            foreach (var sut in suts)
            {
                var i = suts.IndexOf(sut);

                var efUsers = await efUserRepos[i].CreateMany(users);
                efUserRepos[i].ClearChangeTracking();
                var efOrg = await efOrgRepos[i].CreateAsync(org);
                efOrgRepos[i].ClearChangeTracking();

                cipher.OrganizationId = efOrg.Id;

                collection.OrganizationId = efOrg.Id;
                var efCollection = await efCollectionRepos[i].CreateAsync(collection);
                efCollectionRepos[i].ClearChangeTracking();

                IEnumerable <object>[] lists = { efUsers, orgUsers };
                var maxOrgUsers = lists.Min(l => l.Count());

                orgUsers = orgUsers.Take(maxOrgUsers).ToList();
                efUsers  = efUsers.Take(maxOrgUsers).ToList();

                for (var j = 0; j < maxOrgUsers; j++)
                {
                    orgUsers[j].OrganizationId = efOrg.Id;
                    orgUsers[j].UserId         = efUsers[j].Id;
                }

                orgUsers = await efOrgUserRepos[i].CreateMany(orgUsers);

                var selectionReadOnlyList = new List <SelectionReadOnly>();
                orgUsers.ForEach(ou => selectionReadOnlyList.Add(new SelectionReadOnly()
                {
                    Id = ou.Id
                }));

                await efCollectionRepos[i].UpdateUsersAsync(efCollection.Id, selectionReadOnlyList);
                efCollectionRepos[i].ClearChangeTracking();

                foreach (var ou in orgUsers)
                {
                    var collectionUser = new CollectionUser()
                    {
                        CollectionId       = efCollection.Id,
                        OrganizationUserId = ou.Id
                    };
                }

                cipher.UserId = null;
                var postEfCipher = await sut.CreateAsync(cipher);

                sut.ClearChangeTracking();

                var query         = new UserBumpAccountRevisionDateByCipherIdQuery(cipher);
                var modifiedUsers = await sut.Run(query).ToListAsync();

                Assert.True(modifiedUsers
                            .All(u => u.AccountRevisionDate.ToShortDateString() ==
                                 DateTime.UtcNow.ToShortDateString()));
            }
        }
Beispiel #11
0
        public async Task <List <CollectionUser> > AuthoriseUser(string subscriptionId)
        {
            string bodyText = await this.Request.Content.ReadAsStringAsync();

            var    data        = JsonConvert.DeserializeObject <Dictionary <string, object> >(JsonConvert.DeserializeObject(bodyText).ToString());
            var    commandData = ((JObject)data["credentials"]).ToObject <Dictionary <string, object> >();
            string fullName    = commandData["username"] as string;

            string[] dfName     = fullName.Split('\\');
            string   domainName = dfName[0];
            string   Username   = dfName[1];
            string   Password   = commandData["password"] as string;

            string psl_path   = ConfigurationManager.AppSettings["psl_layer"].ToString() + "/userlogin.ps1";
            string psl_Script = "";

            using (WebClient client = new WebClient())
            {
                psl_Script = client.DownloadString(psl_path);
            }

            PowerShellExecutor <CollectionUser> executor;

            executor           = new PowerShellExecutor <CollectionUser>();
            executor.CmdName   = "";
            executor.NewFunc   = this.NewFunclogin;
            executor.Configure = (engine) =>
            {
                PowerShellJob.AddVariable(engine, "caUserName", fullName);
                PowerShellJob.AddVariable(engine, "caPassword", Password);
                engine.AddScript(psl_Script);
            };

            List <CollectionUser> response = new List <CollectionUser>();
            CollectionUser        obj      = new CollectionUser();
            var    list = executor.GetList();
            string res  = list[0].UserType.ToString();

            obj.Name     = Username.ToUpper().ToString();
            obj.UserType = res;
            if (res == "CollectionAdmin")
            {
                obj.UserType = "TenantAdmin";
                // List<CollectionUser> list = new List<CollectionUser>();


                obj.ConnectionBroker = list[0].ConnectionBroker.ToString();
            }
            string isAllowed = "Valid";//IsAllowed();

            if (isAllowed.Contains("Valid"))
            {
                obj.IsValid = true;
                obj.Message = "";
                if (isAllowed.Contains("|"))
                {
                    obj.Message = isAllowed.Split('|')[1].ToString();
                }
            }
            else
            {
                obj.IsValid = false;
                obj.Message = "";
            }

            response.Add(obj);

            return(response);
        }