コード例 #1
0
        /// <summary>
        /// Create a new Aneka cloud/master user for a specific cloud
        /// </summary>
        /// <param name="cloudUserAccount">The new  account information to add</param>
        /// <param name="cloudID">The cloud ID to add this user to</param>
        public void createNewUser(CloudUserAccount cloudUserAccount, int cloudID)
        {
            // Check to see if a non-empty username was specified
            if (string.IsNullOrEmpty(cloudUserAccount.Username) == true)
            {
                throw new Exception("Invalid User Name: The user name cannot be empty or contain only white-spaces");
            }

            // Validate password
            if (cloudUserAccount.Password.Length < 6)
            {
                throw new Exception("Invalid Password: The password must be at least six characters long");
            }

            List<string> groups = new List<string>();

            // [DK] NOTE: Do we need to have a selection list of
            //            groups in this form?

            UserCredentials credentials = new UserCredentials(cloudUserAccount.Username, cloudUserAccount.Password, cloudUserAccount.Username, cloudUserAccount.useThisAccountForReporting ? "This account will be used for reporting" : "Normal account", groups);
            securityManager.CreateUser(credentials);

            CloudUserAccount CloudUserAccountfromDB = db.CloudUserAccounts.Find(cloudUserAccount.CloudUserAccountId);
            Cloud cloudFromDB = db.Clouds.Find(cloudID);
            CloudUserAccountfromDB.Clouds.Add(cloudFromDB);
            db.SaveChanges();
        }
コード例 #2
0
        public ActionResult CreatePost(CloudUserAccount clouduseraccount, bool useThisAccountForReporting, int?[] CloudsList)
        {
            if (ModelState.IsValid)
            {
                clouduseraccount.useThisAccountForReporting = useThisAccountForReporting;
                db.CloudUserAccounts.Add(clouduseraccount);
                db.SaveChanges();

                if (CloudsList != null)
                {
                    clouduseraccount.Clouds = new List<Cloud>();
                    foreach(var cloudID in CloudsList)
                    {
                        try
                        {
                            var cloud = db.Clouds.Find(cloudID);

                            //Save the user to the cloud
                            ContainersManagement containersManagement = new ContainersManagement();
                            Machine machine = containersManagement.machineLookupFromMasterId(cloud.Master.MasterId);
                            Uri masterUri = new Uri(ContainersManagement.GetContainerUri(machine.IP, cloud.Master.Port));
                            global::Aneka.Security.UserCredentials adminLogin = new global::Aneka.Security.UserCredentials("Administrator", String.Empty);
                            AnekaUsersManagement anekaUsersManagement = new AnekaUsersManagement(masterUri, adminLogin);
                            anekaUsersManagement.createNewUser(clouduseraccount, cloud.CloudId);

                            //clouduseraccount.Clouds.Add(cloud);
                            //db.SaveChanges();
                        }
                        catch (Exception)
                        {
                            continue;
                        }
                    }

                }

                return RedirectToAction("Dashboard", "Home");
            }

            return View("~/Views/Home/Dashboard.cshtml",clouduseraccount);
        }
コード例 #3
0
        public ActionResult EditPost(CloudUserAccount clouduseraccount,bool useThisAccountForReporting, int?[] CloudsList)
        {
            if (ModelState.IsValid)
            {
                clouduseraccount.useThisAccountForReporting = useThisAccountForReporting;
                db.Entry(clouduseraccount).State = EntityState.Modified;
                db.SaveChanges();

                //Clouds List
                var clouduseraccount2 = db.CloudUserAccounts.Include(x => x.Clouds).Where(x => x.CloudUserAccountId == clouduseraccount.CloudUserAccountId).First();

                if (clouduseraccount2.Clouds == null)
                    clouduseraccount2.Clouds = new List<Cloud>();

                foreach (var user in db.Clouds.ToList())
                    clouduseraccount2.Clouds.Remove(user);
                db.SaveChanges();

                if (CloudsList != null)
                {
                    foreach (int cloudID in CloudsList)
                    {
                        var user = db.Clouds.Find(cloudID);
                        clouduseraccount2.Clouds.Add(user);
                    }
                    db.SaveChanges();
                }

                return RedirectToAction("Dashboard", "Home");
            }
            return View("~/Views/Home/Dashboard.cshtml",clouduseraccount);
        }