public async Task <IActionResult> CreateAmazonAccount(int id)
        {
            var username     = ApplicationUtility.GetTokenAttribute(Request.Headers["Authorization"], "sub");
            var service      = new InstituteRepositoryService(connString);
            var institute    = (await service.GetInstituteById(id)).Name;
            var bucketSevice = new AmazonS3Service();
            var bucketName   = GetName(institute);
            await bucketSevice.CreateBucketToS3(bucketName);

            var iamService   = new AmazonIAMService();
            var iamUserName  = GetName(institute);
            var accesKeyInfo = await iamService.CreateIAMUser("/", iamUserName);

            var amazonAccountModel = new InstituteAmazonAccount()
            {
                AccessKey   = accesKeyInfo.AccessKey,
                Actor       = username,
                BucketName  = bucketName,
                IamUsername = iamUserName,
                InstituteId = id,
                SecretKey   = accesKeyInfo.SecurityKey
            };
            await service.CreateInstituteAmazonAccount(amazonAccountModel);

            var response = new GenericResponse <string>()
            {
                IsSuccess    = true,
                Message      = "Cloud account created successfully.",
                ResponseCode = 200,
                Result       = "Success"
            };

            return(Ok(response));
        }
        public async Task <IActionResult> DeleteIIM(string username)
        {
            var service = new AmazonIAMService();
            await service.DeleteUser(username);

            var response = new GenericResponse <string>()
            {
                IsSuccess    = true,
                Message      = "User deleted successfully.",
                ResponseCode = 200,
                Result       = "Success"
            };

            return(Ok(response));
        }
        public async Task <IActionResult> CreateIAM(IAMModel model)
        {
            var s3service = new AmazonS3Service();
            await s3service.CreateBucketToS3(model.BucketName);

            var iamservice = new AmazonIAMService();
            await iamservice.CreateIAMUser(@"/" + model.BucketName + @"/", model.UserName);

            var response = new GenericResponse <string>()
            {
                IsSuccess    = true,
                Message      = "User created in IIM successfully.",
                ResponseCode = 200,
                Result       = "Success"
            };

            return(Ok(response));
        }
        public async Task <IActionResult> ListIIM()
        {
            //var username = ApplicationUtility.GetTokenAttribute(Request.Headers["Authorization"], "sub");
            //string value = Request.Headers["Authorization"];
            //value = value.Remove(0, 7);
            //var jwtHandler = new JwtSecurityTokenHandler();
            //var token = jwtHandler.ReadJwtToken(value);
            //var usernameClaim = token.Claims.Where(a=>a.Type=="sub").FirstOrDefault();
            var service = new AmazonIAMService();
            var res     = await service.ListUsers();

            var response = new GenericResponse <List <string> >()
            {
                IsSuccess    = true,
                Message      = "User created in IAM successfully.",
                ResponseCode = 200,
                Result       = res
            };

            return(Ok(response));
        }
Exemple #5
0
        public async Task <IActionResult> Create(PublisherModel model)
        {
            var username = ApplicationUtility.GetTokenAttribute(Request.Headers["Authorization"], "sub");
            var service  = new PublisherRepositoryService(connString);
            var pubId    = await service.CreatePublisher(model, username);

            PublisherAmazonAccount amazonAccountModel;

            if (model.CloudAccountRequired)
            {
                var bucketSevice = new AmazonS3Service();
                var bucketName   = GetName(model.PublisherName);
                await bucketSevice.CreateBucketToS3(bucketName);

                var iamService   = new AmazonIAMService();
                var iamUserName  = GetName(model.PublisherName);
                var accesKeyInfo = await iamService.CreateIAMUser("/", iamUserName);

                amazonAccountModel = new PublisherAmazonAccount()
                {
                    AccessKey   = accesKeyInfo.AccessKey,
                    Actor       = username,
                    BucketName  = bucketName,
                    IamUsername = iamUserName,
                    PublisherId = pubId,
                    SecretKey   = accesKeyInfo.SecurityKey
                };
                await service.CreatePublisherAmazonAccount(amazonAccountModel);
            }
            var response = new GenericResponse <int>()
            {
                IsSuccess    = true,
                Message      = "Publisher created successfully.",
                ResponseCode = 200,
                Result       = pubId
            };

            return(Ok(response));
        }
        public async Task <IActionResult> CreateAmazonAccount(int id)
        {
            var actor   = ApplicationUtility.GetTokenAttribute(Request.Headers["Authorization"], "sub");
            var service = new UserRepositoryService(connString);
            var instituteAmazonAccInfo = await service.GetInstituteAmazonAccountDetail(id);

            var amazons3Service = new AmazonS3Service();
            var accname         = instituteAmazonAccInfo.UserName.ToLower();
            await amazons3Service.CreateFolder(instituteAmazonAccInfo.BucketName, accname,
                                               instituteAmazonAccInfo.AccessKey, instituteAmazonAccInfo.SecretKey);

            var amazoniamService = new AmazonIAMService();
            var iamacc           = accname + Guid.NewGuid().ToString().ToLower();
            var path             = "/" + instituteAmazonAccInfo.BucketName + "/" + instituteAmazonAccInfo.UserName.ToLower() + "/";
            var amazonaccount    = await amazoniamService.CreateIAMUser(path, iamacc);

            var model = new UserAmazonAccount()
            {
                AccessKey   = amazonaccount.AccessKey,
                Actor       = actor,
                BucketName  = instituteAmazonAccInfo.BucketName,
                BucketPath  = "/" + instituteAmazonAccInfo.UserName.ToLower(),
                IamUsername = iamacc,
                SecretKey   = amazonaccount.SecurityKey,
                UserId      = instituteAmazonAccInfo.UserId
            };
            await service.CreateUserAmazonAccount(model);

            var response = new GenericResponse <string>()
            {
                IsSuccess    = true,
                Message      = "Amazon account created successfully.",
                ResponseCode = 200,
                Result       = "Success"
            };

            return(Ok(response));
        }