Пример #1
0
        private string DeleteUser()
        {
            var boxConfig = new BoxConfig(ClientId, ClientSecret, EntrepriseId, PrivateKey,
                                          Passphrase, JwtPublicKey);
            var boxJWT = new BoxJWTAuth(boxConfig);

            var adminToken = boxJWT.UserToken(UserId);
            var client     = boxJWT.AdminClient(adminToken);

            var usersRes = client.UsersManager.GetEnterpriseUsersAsync();

            usersRes.Wait();

            foreach (var user in usersRes.Result.Entries)
            {
                if (user.Login == UserIdToDelete)
                {
                    var delUserRes = client.UsersManager.DeleteEnterpriseUserAsync(user.Id, false, false);

                    delUserRes.Wait();

                    return("Success");
                }
            }
            return("User Not Found");
        }
Пример #2
0
        private string DeleteGroup()
        {
            var boxConfig = new BoxConfig(ClientId, ClientSecret, EntrepriseId, PrivateKey,
                                          Passphrase, JwtPublicKey);
            var boxJWT = new BoxJWTAuth(boxConfig);

            var adminToken = boxJWT.UserToken(UserId);
            var client     = boxJWT.AdminClient(adminToken);

            var groupId = GetGroupIdByGroupName(client, GroupName);

            if (groupId == null)
            {
                return("Group not found.");
            }

            var res = client.GroupsManager.DeleteAsync(groupId);

            res.Wait();
            if (res.Exception != null)
            {
                return(res.Exception.Message);
            }

            return("Success");
        }
Пример #3
0
        private async Task ExecuteMainAsync()
        {
            var config  = ConfigureBoxApi();
            var session = new BoxJWTAuth(config);

            // client with permissions to manage application users
            var adminToken = session.AdminToken();
            var client     = session.AdminClient(adminToken);

            var user = await CreateNewUser(client);

            Console.WriteLine("New app user created with Id = {0}", user.Id);

            // user client with access to user's data (folders, files, etc)
            var userToken  = session.UserToken(user.Id);
            var userClient = session.UserClient(userToken, user.Id);

            // root folder has id = 0
            var newFolder = await CreateNewFolder(userClient);

            Console.WriteLine("New folder created with Id = {0}", newFolder.Id);

            var timer    = Stopwatch.StartNew();
            var file     = File.OpenRead("box_logo.png");
            var uploaded = await UploadFile(newFolder, userClient, file);

            Console.WriteLine("New file uploaded with Id = {0} in {1} ms", uploaded.Id, timer.ElapsedMilliseconds);
        }
Пример #4
0
        public static void Initialize(TestContext testContext)
        {
            jsonConfig = Environment.GetEnvironmentVariable("JSON_CONFIG");

            if (string.IsNullOrEmpty(jsonConfig))
            {
                Debug.WriteLine("No json config found!");
            }
            else
            {
                Debug.WriteLine("json config content length : " + jsonConfig.Length);

                var config  = BoxConfig.CreateFromJsonString(jsonConfig);
                var session = new BoxJWTAuth(config);

                // create a new app user
                // client with permissions to manage application users
                var adminToken = session.AdminToken();
                adminClient = session.AdminClient(adminToken);

                var user = CreateNewUser(adminClient).Result;

                userId = user.Id;

                Debug.WriteLine("New app user created : " + userId);

                // user client with access to user's data (folders, files, etc)
                userToken  = session.UserToken(userId);
                userClient = session.UserClient(userToken, userId);
            }
        }
Пример #5
0
        public static async Task AssemblyInitialize(TestContext testContext)
        {
            var jsonConfig = Environment.GetEnvironmentVariable("INTEGRATION_TESTING_CONFIG");

            if (string.IsNullOrEmpty(jsonConfig))
            {
                Debug.WriteLine("No json config found in environment variables Reading from config.json.");
                jsonConfig = ReadFromJson("config.json");
            }

            var config = BoxConfigBuilder.CreateFromJsonString(jsonConfig)
                         .Build();
            var session = new BoxJWTAuth(config);

            var json       = JObject.Parse(jsonConfig);
            var adminToken = await session.AdminTokenAsync();

            AdminClient = session.AdminClient(adminToken);

            if (json["userID"] != null && json["userID"].ToString().Length != 0)
            {
                UserId = json["userID"].ToString();
            }
            else
            {
                var user = await CreateNewUser(AdminClient);

                UserId = user.Id;
            }
            var userToken = await session.UserTokenAsync(UserId);

            UserClient = session.UserClient(userToken, UserId);

            EnterpriseId = config.EnterpriseId;
        }
Пример #6
0
        private string AddUser()
        {
            var boxConfig = new BoxConfig(ClientId, ClientSecret, EntrepriseId, PrivateKey,
                                          Passphrase, JwtPublicKey);

            var boxJWT = new BoxJWTAuth(boxConfig);

            var adminToken = boxJWT.UserToken(UserId);
            var client     = boxJWT.AdminClient(adminToken);

            var userRes = client.UsersManager.CreateEnterpriseUserAsync(new BoxUserRequest()
            {
                Name  = UserName,
                Login = Login
            });

            userRes.Wait();

            if (userRes.Exception != null)
            {
                return(userRes.Exception.Message);
            }

            return("Success");
        }
Пример #7
0
        public async Task <ICustomActivityResult> Execute()
        {
            var Message = string.Empty;

            var boxConfig   = new BoxConfig(CLIENT_ID, CLIENT_SECRET, ENTERPRISE_ID, PRIVATE_KEY, JWT_PRIVATE_KEY_PASSWORD, JWT_PUBLIC_KEY_ID);
            var boxJWT      = new BoxJWTAuth(boxConfig);
            var adminToken  = boxJWT.UserToken(USER_ID);
            var adminClient = boxJWT.AdminClient(adminToken);

            using (FileStream fileStream = new FileStream(FilePath, FileMode.Open))
            {
                BoxFileRequest requestParams = new BoxFileRequest()
                {
                    Name   = NameFile,
                    Parent = new BoxRequestEntity()
                    {
                        Id = FolderID
                    }
                };
                BoxFile file = await adminClient.FilesManager.UploadAsync(requestParams, fileStream);

                Message = file.Id;
            }
            return(this.GenerateActivityResult(Message));
        }
        public void retriesWithNewJWTAssertionOnErrorResponseAndSucceeds()
        {
            var config     = new BoxConfig(ClientId, ClientSecret, EnterpriseId, privateKey, passphrase, publicKeyID);
            var session    = new BoxJWTAuth(config);
            var adminToken = session.AdminToken();

            adminClient = session.AdminClient(adminToken);
        }
        public BoxPlatformService(IOptions <BoxPlatformServiceOptions> boxOptions, IDistributedCache distributedCache, ILogger <BoxPlatformService> logger)
        {
            _boxOptions       = boxOptions;
            _distributedCache = distributedCache;
            _logger           = logger;

            _boxConfig  = BoxConfig.CreateFromJsonString(_boxOptions.Value.BoxConfig);
            _boxJWTAuth = new BoxJWTAuth(_boxConfig);
        }
Пример #10
0
 public BoxJWTAuthTest()
 {
     // Initial Setup
     _handler   = new Mock <IRequestHandler>();
     _service   = new BoxService(_handler.Object);
     _boxConfig = new Mock <IBoxConfig>();
     _boxConfig.SetupGet(x => x.EnterpriseId).Returns("12345");
     _jwtAuth = new BoxJWTAuth(_boxConfig.Object, _service);
 }
        public Box(string userId, TraceWriter log)
        {
            traceWriter = log;

            var boxJwt    = new BoxJWTAuth(ConfigureBoxApi());
            var userToken = boxJwt.UserToken(userId); //valid for 60 minutes so should be cached and re-used

            userClient = boxJwt.UserClient(userToken, userId);
        }
Пример #12
0
        static async Task MainAsync()
        {
            // rename the private_key.pem.example to private_key.pem and put your JWT private key in the file
            var privateKey = File.ReadAllText("private_key.pem");

            var boxConfig = new BoxConfig(CLIENT_ID, CLIENT_SECRET, ENTERPRISE_ID, privateKey, JWT_PRIVATE_KEY_PASSWORD, JWT_PUBLIC_KEY_ID);

            // Proxy configuration - set isProxyEnabled = true if using Fiddler!!
            if (isProxyEnabled != false)
            {
                System.Net.WebProxy webProxy   = new System.Net.WebProxy("http://127.0.0.1:8888");
                NetworkCredential   credential = new NetworkCredential("testUser", "testPass");
                webProxy.Credentials = credential;
                boxConfig.WebProxy   = webProxy;
            }

            var boxJWT = new BoxJWTAuth(boxConfig);

            var adminToken = boxJWT.AdminToken();

            Console.WriteLine("Admin Token: " + adminToken);
            Console.WriteLine();

            var adminClient = boxJWT.AdminClient(adminToken);

            var adminFunc = new Func(adminClient);

            adminFunc.GetFolderItems();

            var       userId     = "3768478578";
            var       userToken  = boxJWT.UserToken(userId); // valid for 60 minutes so should be cached and re-used
            BoxClient userClient = boxJWT.UserClient(userToken, userId);

            var userFunc = new Func(userClient);

            userFunc.GetFolderItems();

            // Stream fileContents = await userClient.FilesManager.DownloadStreamAsync(id: "675996854920"); // Download the file 675996854920

            // var userRequest = new BoxUserRequest() { Name = "test appuser", IsPlatformAccessOnly = true };
            // var appUser = await adminClient.UsersManager.CreateEnterpriseUserAsync(userRequest);
            // Console.WriteLine("Created App User");

            // var userToken = boxJWT.UserToken(appUser.Id);
            // var userClient = boxJWT.UserClient(userToken, appUser.Id);

            // var userDetails = await userClient.UsersManager.GetCurrentUserInformationAsync();
            // Console.WriteLine("\nApp User Details:");
            // Console.WriteLine("\tId: {0}", userDetails.Id);
            // Console.WriteLine("\tName: {0}", userDetails.Name);
            // Console.WriteLine("\tStatus: {0}", userDetails.Status);
            // Console.WriteLine();

            // await adminClient.UsersManager.DeleteEnterpriseUserAsync(appUser.Id, false, true);
            // Console.WriteLine("Deleted App User");
        }
Пример #13
0
        private static async Task MainAsync()
        {
            // rename the private_key.pem.example to private_key.pem and put your JWT private key in the file
            var privateKey = File.ReadAllText("private_key.pem.example");

            var boxConfig = new BoxConfigBuilder(_clientId, _clientSecret, _enterpriseId, privateKey, _jwtPrivateKeyPassword, _jwtPublicKeyId)
                            .Build();
            var boxJWT = new BoxJWTAuth(boxConfig);

            var adminToken = await boxJWT.AdminTokenAsync();

            Console.WriteLine("Admin Token: " + adminToken);
            Console.WriteLine();

            var adminClient = boxJWT.AdminClient(adminToken);

            Console.WriteLine("Admin root folder items");
            var items = await adminClient.FoldersManager.GetFolderItemsAsync("0", 500);

            items.Entries.ForEach(i =>
            {
                Console.WriteLine("\t{0}", i.Name);
                //if (i.Type == "file")
                //{
                //    var previewLink = adminClient.FilesManager.GetPreviewLinkAsync(i.Id).Result;
                //    Console.WriteLine("\tPreview Link: {0}", previewLink.ToString());
                //    Console.WriteLine();
                //}
            });
            Console.WriteLine();

            var userRequest = new BoxUserRequest()
            {
                Name = "test appuser", IsPlatformAccessOnly = true
            };
            var appUser = await adminClient.UsersManager.CreateEnterpriseUserAsync(userRequest);

            Console.WriteLine("Created App User");

            var userToken = await boxJWT.UserTokenAsync(appUser.Id);

            var userClient = boxJWT.UserClient(userToken, appUser.Id);

            var userDetails = await userClient.UsersManager.GetCurrentUserInformationAsync();

            Console.WriteLine("\nApp User Details:");
            Console.WriteLine("\tId: {0}", userDetails.Id);
            Console.WriteLine("\tName: {0}", userDetails.Name);
            Console.WriteLine("\tStatus: {0}", userDetails.Status);
            Console.WriteLine();

            await adminClient.UsersManager.DeleteEnterpriseUserAsync(appUser.Id, false, true);

            Console.WriteLine("Deleted App User");
        }
        private static BoxJWTAuth GetBoxSession(IConfigurationRoot config)
        {
            IBoxConfig boxConfig  = null;
            var        configJson = config[BOX_CONFIG_KEY];

            boxConfig = BoxConfig.CreateFromJsonString(configJson);

            var session = new BoxJWTAuth(boxConfig);

            return(session);
        }
Пример #15
0
        static async Task MainAsync()
        {
            var privateKey = File.ReadAllText("private_key.pem");

            var boxConfig = new BoxConfig(CLIENT_ID, CLIENT_SECRET, ENTERPRISE_ID, privateKey, JWT_PRIVATE_KEY_PASSWORD, JWT_PUBLIC_KEY_ID);
            var boxJWT    = new BoxJWTAuth(boxConfig);

            var adminToken = boxJWT.AdminToken();

            Console.WriteLine("Admin Token: " + adminToken);
            Console.WriteLine();

            var adminClient = boxJWT.AdminClient(adminToken);

            Console.WriteLine("Admin root folder items");
            var items = await adminClient.FoldersManager.GetFolderItemsAsync("0", 500);

            items.Entries.ForEach(i =>
            {
                Console.WriteLine("\t{0}", i.Name);
                //if (i.Type == "file")
                //{
                //    var preview_link = adminClient.FilesManager.GetPreviewLinkAsync(i.Id).Result;
                //    Console.WriteLine("\tPreview Link: {0}", preview_link.ToString());
                //    Console.WriteLine();
                //}
            });
            Console.WriteLine();

            var userRequest = new BoxUserRequest()
            {
                Name = "test appuser", IsPlatformAccessOnly = true
            };
            var appUser = await adminClient.UsersManager.CreateEnterpriseUserAsync(userRequest);

            Console.WriteLine("Created App User");

            var userToken  = boxJWT.UserToken(appUser.Id);
            var userClient = boxJWT.UserClient(userToken, appUser.Id);

            var userDetails = await userClient.UsersManager.GetCurrentUserInformationAsync();

            Console.WriteLine("\nApp User Details:");
            Console.WriteLine("\tId: {0}", userDetails.Id);
            Console.WriteLine("\tName: {0}", userDetails.Name);
            Console.WriteLine("\tStatus: {0}", userDetails.Status);
            Console.WriteLine();

            await adminClient.UsersManager.DeleteEnterpriseUserAsync(appUser.Id, false, true);

            Console.WriteLine("Deleted App User");
        }
Пример #16
0
        private static void Main()
        {
            var boxConfig = BoxConfigBuilder.CreateFromJsonString(GetConfigJson())
                            // Set web proxy
                            .SetWebProxy(new BoxHttpProxy())
                            .Build();

            var boxJWT = new BoxJWTAuth(boxConfig);

            var adminToken  = boxJWT.AdminTokenAsync().Result;
            var adminClient = boxJWT.AdminClient(adminToken);

            _ = adminClient.FoldersManager.GetFolderItemsAsync("0", 500).Result;
        }
Пример #17
0
        public async Task <ICustomActivityResult> Execute()
        {
            var Message = string.Empty;

            var boxConfig   = new BoxConfig(CLIENT_ID, CLIENT_SECRET, ENTERPRISE_ID, PRIVATE_KEY, JWT_PRIVATE_KEY_PASSWORD, JWT_PUBLIC_KEY_ID);
            var boxJWT      = new BoxJWTAuth(boxConfig);
            var adminToken  = boxJWT.UserToken(USER_ID);
            var adminClient = boxJWT.AdminClient(adminToken);

            await adminClient.FilesManager.DeleteAsync(id : FileID);

            Message = "Success";
            return(this.GenerateActivityResult(Message));
        }
Пример #18
0
        static void Main(string[] args)
        {
            var boxConfig = BoxConfig.CreateFromJsonString(GetConfigJson());

            // Set web proxy
            boxConfig.WebProxy = new BoxHttpProxy();

            var boxJWT = new BoxJWTAuth(boxConfig);

            var adminToken  = boxJWT.AdminToken();
            var adminClient = boxJWT.AdminClient(adminToken);

            var items = adminClient.FoldersManager.GetFolderItemsAsync("0", 500).Result;
        }
Пример #19
0
        static void Main(string[] args)
        {
            var appConfig  = new ConfigurationBuilder().AddUserSecrets <Program>().Build();
            var configJson = appConfig["BoxConfigJson"];

            Console.WriteLine($"Creating a Box Admin Client");
            var config     = BoxConfig.CreateFromJsonString(configJson);
            var auth       = new BoxJWTAuth(config);
            var adminToken = auth.AdminToken();
            var boxClient  = auth.AdminClient(adminToken);

            Console.WriteLine($"Created a Box Admin Client");
            GetUser(config, boxClient);
        }
Пример #20
0
        public static async Task FindAppUsersAsync()
        {
            Console.WriteLine("FindAppUsersAsync Start");

            // BOX API実行用のClientを準備
            var config     = Program.ConfigureBoxApi();
            var boxJwt     = new BoxJWTAuth(config);
            var adminToken = boxJwt.AdminToken();
            var saClient   = boxJwt.AdminClient(adminToken);

            // サービスアカウントが取れているかチェック
            var sa = await saClient.UsersManager.GetCurrentUserInformationAsync();

            Console.WriteLine("SA user ID:{0}, Login:{1}, Name:{2}", sa.Id, sa.Login, sa.Name);

            // 非同期処理の同時実行数を制限
            var throttling = new SemaphoreSlim(Config.ApiRateLimit);


            var users = await saClient.UsersManager.GetEnterpriseUsersAsync(limit : 1000);

            var appUserList = new List <string>();
            var listSize    = users.Entries.Count;

            for (int i = 0; i < listSize; i++)
            {
                Console.Write("user {0}/{1}", i, listSize);
                Console.SetCursorPosition(0, Console.CursorTop);

                var user = users.Entries[i];

                if (user.Name.StartsWith("ST_APP_USER_") && user.Login.StartsWith("AppUser_"))
                {
                    if (user.Name == "ST_APP_USER_SEARCH")
                    {
                        Console.WriteLine("Search appUser ID: {0} ", user.Id);
                    }

                    appUserList.Add(user.Id);
                }
            }

            Console.WriteLine($"Found AppUser {appUserList.Count}");

            // ファイルに書き出す
            await File.WriteAllTextAsync(PathToAppUserIDsForTest, JsonSerializer.Serialize(appUserList));

            Console.WriteLine("FindAppUsersAsync Done");
        }
Пример #21
0
        //ToDo: change to accept the token or userId as parameter based on the windows authenticated user making the call
        private void CreateBoxClient()
        {
            IBoxConfig config = null;

            using (FileStream fs = new FileStream("CONFIG.JSON", FileMode.Open))
            {
                config = BoxConfig.CreateFromJsonFile(fs);
            }

            var userId    = "3420422604";
            var session   = new BoxJWTAuth(config);
            var userToken = session.UserToken(userId);

            boxClient = session.UserClient(userToken, userId);
        }
Пример #22
0
        private string AddUserToGroup()
        {
            var boxConfig = new BoxConfig(ClientId, ClientSecret, EntrepriseId, PrivateKey,
                                          Passphrase, JwtPublicKey);
            var boxJWT = new BoxJWTAuth(boxConfig);

            var adminToken = boxJWT.UserToken(UserId);
            var client     = boxJWT.AdminClient(adminToken);

            var groupId = GetGroupIdByGroupName(client, GroupName);

            if (groupId == null)
            {
                return("Group not found.");
            }

            var usersRes = client.UsersManager.GetEnterpriseUsersAsync();

            usersRes.Wait();

            foreach (var user in usersRes.Result.Entries)
            {
                if (user.Login == UserIdToBeAdded)
                {
                    var memberResult = client.GroupsManager.AddMemberToGroupAsync(new BoxGroupMembershipRequest
                    {
                        User = new BoxRequestEntity {
                            Id = user.Id
                        },
                        Group = new BoxGroupRequest {
                            Id = groupId
                        }
                    });

                    memberResult.Wait();

                    memberResult.Wait();
                    if (memberResult.Exception != null)
                    {
                        return(memberResult.Exception.Message);
                    }

                    return("Success");
                }
            }
            return("User Not Found");
        }
Пример #23
0
        static async Task MainAsync()
        {
            string CLIENT_ID                = Configuration["Config:ClientID"];
            string CLIENT_SECRET            = Configuration["Config:ClientSecret"];
            string ENTERPRISE_ID            = Configuration["Config:EnterpriseID"];
            string JWT_PRIVATE_KEY_PATH     = Configuration["Config:PrivateKeyPath"];
            string JWT_PRIVATE_KEY_PASSWORD = Configuration["Config:PrivateKeyPass"];
            string JWT_PUBLIC_KEY_ID        = Configuration["Config:PublicKeyID"];

            var privateKey = File.ReadAllText(JWT_PRIVATE_KEY_PATH);

            var boxConfig = new BoxConfig(CLIENT_ID, CLIENT_SECRET, ENTERPRISE_ID, privateKey, JWT_PRIVATE_KEY_PASSWORD, JWT_PUBLIC_KEY_ID);
            var boxJWT    = new BoxJWTAuth(boxConfig);

            var adminToken = boxJWT.AdminToken();

            Console.WriteLine("Admin Token: " + adminToken);

            var adminClient = boxJWT.AdminClient(adminToken);

            var userRequest = new BoxUserRequest
            {
                Name = "John Smith",
                IsPlatformAccessOnly = true
            };
            var user = await adminClient.UsersManager.CreateEnterpriseUserAsync(userRequest);

            Console.Write("New app user created with Id = {0}", user.Id);

            /*BoxFile newFile;
             *
             * // Create request object with name and parent folder the file should be uploaded to
             * using (FileStream stream = new FileStream(@"/Users/jleblanc/localhost/box/net-jwt/tax.txt", FileMode.Open))
             * {
             *  BoxFileRequest req = new BoxFileRequest()
             *  {
             *      Name = "tax.txt",
             *      Parent = new BoxRequestEntity() { Id = "0" }
             *  };
             *  newFile = await adminClient.FilesManager.UploadAsync(req, stream);
             * }*/
        }
Пример #24
0
    static async Task validateUser(string name, string sub)
    {
        // Configure Box SDK instance
        var       reader = new StreamReader("config.json");
        var       json   = reader.ReadToEnd();
        var       config = BoxConfig.CreateFromJsonString(json);
        var       sdk    = new BoxJWTAuth(config);
        var       token  = sdk.AdminToken();
        BoxClient client = sdk.AdminClient(token);

        // Search for matching Box app user for Okta ID
        BoxCollection <BoxUser> users = await client.UsersManager.GetEnterpriseUsersAsync(externalAppUserId : sub);

        System.Diagnostics.Debug.WriteLine(users.TotalCount);

        if (users.TotalCount > 0)
        {
            // Box user found, get token
            var       userId     = users.Entries[0].Id;
            var       userToken  = sdk.UserToken(userId);
            BoxClient userClient = sdk.UserClient(userToken, userId);

            // Get current user
            BoxUser currentUser = await userClient.UsersManager.GetCurrentUserInformationAsync();

            System.Diagnostics.Debug.WriteLine("Current user name: " + currentUser.Name);
        }
        else
        {
            // No associated user found, create app user
            var userRequest = new BoxUserRequest()
            {
                Name = name,
                ExternalAppUserId    = sub,
                IsPlatformAccessOnly = true
            };
            var user = await client.UsersManager.CreateEnterpriseUserAsync(userRequest);

            System.Diagnostics.Debug.WriteLine("New user created: " + user.Name);
        }
    }
Пример #25
0
        /// <summary>
        /// Get an authenticated client for the JWT app service account.
        /// </summary>
        /// <param name="pathToConfigJson">The path to the JWT app configuration JSON file.</param>
        /// <returns>An authenticated Box client</returns>
        private static BoxClient GetAuthenticatedClient(string pathToConfigJson)
        {
            if (string.IsNullOrWhiteSpace(pathToConfigJson) || !File.Exists(pathToConfigJson))
            {
                throw new Exception("Please set 'pathToConfigJson' with the path to your JWT app config JSON file.");
            }

            // Read the configuration from the file.
            IBoxConfig config;

            using (var configStream = File.OpenRead(pathToConfigJson))
                config = BoxConfig.CreateFromJsonFile(configStream);

            Console.Out.WriteLine("Authenticating...");

            // Create a Box client and authenticate as the service account
            var boxJwtAuth = new BoxJWTAuth(config);
            var adminToken = boxJwtAuth.AdminToken();

            return(boxJwtAuth.AdminClient(adminToken));
        }
Пример #26
0
        public async Task <ICustomActivityResult> Execute()
        {
            var Message       = string.Empty;
            var boxConfig     = new BoxConfig(CLIENT_ID, CLIENT_SECRET, ENTERPRISE_ID, PRIVATE_KEY, JWT_PRIVATE_KEY_PASSWORD, JWT_PUBLIC_KEY_ID);
            var boxJWT        = new BoxJWTAuth(boxConfig);
            var adminToken    = boxJWT.UserToken(USER_ID);
            var adminClient   = boxJWT.AdminClient(adminToken);
            var requestParams = new BoxFileRequest()
            {
                Id     = FileID,
                Parent = new BoxRequestEntity()
                {
                    Id = FolderID
                },
                Name = Name
            };
            BoxFile fileCopy = await adminClient.FilesManager.CopyAsync(requestParams);

            Message = "Success";
            return(this.GenerateActivityResult(Message));
        }
Пример #27
0
        public async Task <ICustomActivityResult> Execute()
        {
            var    Message      = string.Empty;
            var    boxConfig    = new BoxConfig(CLIENT_ID, CLIENT_SECRET, ENTERPRISE_ID, PRIVATE_KEY, JWT_PRIVATE_KEY_PASSWORD, JWT_PUBLIC_KEY_ID);
            var    boxJWT       = new BoxJWTAuth(boxConfig);
            var    adminToken   = boxJWT.UserToken(USER_ID);
            var    adminClient  = boxJWT.AdminClient(adminToken);
            Stream fileContents = await adminClient.FilesManager.DownloadAsync(FileID);

            using (Stream file = File.Create(FilePath))
            {
                byte[] buffer = new byte[8 * 1024];
                int    len;
                while ((len = fileContents.Read(buffer, 0, buffer.Length)) > 0)
                {
                    file.Write(buffer, 0, len);
                }
            }
            Message = "Success";
            return(this.GenerateActivityResult(Message));
        }
Пример #28
0
        private string AddGroup()
        {
            var boxConfig = new BoxConfig(ClientId, ClientSecret, EntrepriseId, PrivateKey,
                                          Passphrase, JwtPublicKey);
            var boxJWT = new BoxJWTAuth(boxConfig);

            var adminToken = boxJWT.UserToken(UserId);
            var client     = boxJWT.AdminClient(adminToken);

            var res = client.GroupsManager.CreateAsync(new BoxGroupRequest()
            {
                Name = GroupName
            });

            res.Wait();
            if (res.Exception != null)
            {
                return(res.Exception.Message);
            }

            return("Success");
        }
        public string GetAccessToken()
        {
            ReturnUpload returnUpload   = new ReturnUpload();
            string       configFileName = System.Web.Hosting.HostingEnvironment.MapPath("~/Models/Clientconfiguration.json");
            StreamReader reader         = new StreamReader(configFileName);
            string       json           = reader.ReadToEnd();
            Config       config         = JsonConvert.DeserializeObject <Config>(json);

            BoxConfig boxConfig = new BoxConfig(config.boxAppSettings.clientID, config.boxAppSettings.clientSecret, config.enterpriseID, config.boxAppSettings.appAuth.privateKey, config.boxAppSettings.appAuth.passphrase, config.boxAppSettings.appAuth.publicKeyID);

            try
            {
                BoxJWTAuth boxJWT     = new BoxJWTAuth(boxConfig);
                string     adminToken = boxJWT.AdminToken();

                return(adminToken);
            }
            catch (Exception ex)
            {
                return(ex.Message);
            }
        }
        private string RemoveUserFromGroup()
        {
            var boxConfig = new BoxConfig(ClientId, ClientSecret, EntrepriseId, PrivateKey,
                                          Passphrase, JwtPublicKey);
            var boxJWT = new BoxJWTAuth(boxConfig);

            var adminToken = boxJWT.UserToken(UserId);
            var client     = boxJWT.AdminClient(adminToken);

            var groupId = GetGroupIdByGroupName(client, GroupName);

            if (groupId == null)
            {
                return("Group not found.");
            }

            var membersResult = client.GroupsManager.GetAllGroupMembershipsForGroupAsync(groupId);

            membersResult.Wait();

            foreach (var member in membersResult.Result.Entries)
            {
                if (member.User.Login == UserIdToBeRemoved)
                {
                    var res = client.GroupsManager.DeleteGroupMembershipAsync(member.Id);

                    res.Wait();
                    if (res.Exception != null)
                    {
                        return(res.Exception.Message);
                    }

                    return("Success");
                }
            }

            return("User Not Found");
        }