Example #1
0
        private bool AddDomain(UserCredential userCredential, string domainName, string newDomainName)
        {
            try
            {
                var service = new DirectoryService(new BaseClientService.Initializer()
                {
                    HttpClientInitializer = userCredential,
                    ApplicationName       = AppName,
                });

                UsersResource.ListRequest listrequest = service.Users.List();
                listrequest.Domain     = domainName;
                listrequest.MaxResults = 10;

                IList <User> users  = listrequest.Execute().UsersValue;
                string       custID = string.Empty;
                if (users != null && users.Count > 0)
                {
                    custID = users[0].CustomerId;
                }

                Domains domain = new Domains()
                {
                    DomainName = newDomainName
                };
                DomainsResource.InsertRequest insReq = service.Domains.Insert(domain, custID);

                var insResp = insReq.Execute();
            }
            catch (Exception)
            {
            }

            return(true);
        }
Example #2
0
        static void Main(string[] args)
        {
            try
            {
                UserCredential credential;
                // Load client secrets.
                using (var stream =
                           new FileStream("credentials.json", FileMode.Open, FileAccess.Read))
                {
                    /* The file token.json stores the user's access and refresh tokens, and is created
                     * automatically when the authorization flow completes for the first time. */
                    string credPath = "token.json";
                    credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                        GoogleClientSecrets.FromStream(stream).Secrets,
                        Scopes,
                        "user",
                        CancellationToken.None,
                        new FileDataStore(credPath, true)).Result;
                    Console.WriteLine("Credential file saved to: " + credPath);
                }

                // Create Directory API service.
                var service = new DirectoryService(new BaseClientService.Initializer
                {
                    HttpClientInitializer = credential,
                    ApplicationName       = ApplicationName
                });

                // Define parameters of request.
                UsersResource.ListRequest request = service.Users.List();
                request.Customer   = "my_customer";
                request.MaxResults = 10;
                request.OrderBy    = UsersResource.ListRequest.OrderByEnum.Email;

                // List users.
                IList <User> users = request.Execute().UsersValue;
                Console.WriteLine("Users:");
                if (users == null || users.Count == 0)
                {
                    Console.WriteLine("No users found.");
                    return;
                }
                foreach (var userItem in users)
                {
                    Console.WriteLine("{0} ({1})", userItem.PrimaryEmail,
                                      userItem.Name.FullName);
                }
            }
            catch (FileNotFoundException e)
            {
                Console.WriteLine(e.Message);
            }
        }
        private static DirectoryService Request(DirectoryService service)
        {
            // Request creation
            userList          = service.Users.List();
            userList.Customer = "my_customer";
            userList.OrderBy  = UsersResource.ListRequest.OrderByEnum.Email;

            // Executing request
            users    = userList.Execute().UsersValue;
            usersize = users.Count;

            return(service);
        }
Example #4
0
        static void Main(string[] args)
        {
            UserCredential credential;

            using (var stream =
                       new FileStream("client_secret.json", FileMode.Open, FileAccess.Read))
            {
                string credPath = System.Environment.GetFolderPath(
                    System.Environment.SpecialFolder.Personal);
                credPath = Path.Combine(credPath, ".credentials/admin-directory_v1-dotnet-quickstart.json");

                credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                    GoogleClientSecrets.Load(stream).Secrets,
                    Scopes,
                    "user",
                    CancellationToken.None,
                    new FileDataStore(credPath, true)).Result;
                Console.WriteLine("Credential file saved to: " + credPath);
            }

            // Create Directory API service.
            var service = new DirectoryService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName       = ApplicationName,
            });

            // Define parameters of request.
            UsersResource.ListRequest request = service.Users.List();
            request.Customer   = "my_customer";
            request.MaxResults = 10;
            request.OrderBy    = UsersResource.ListRequest.OrderByEnum.Email;

            // List users.
            IList <User> users = request.Execute().UsersValue;

            Console.WriteLine("Users:");
            if (users != null && users.Count > 0)
            {
                foreach (var userItem in users)
                {
                    Console.WriteLine("{0} ({1})", userItem.PrimaryEmail,
                                      userItem.Name.FullName);
                }
            }
            else
            {
                Console.WriteLine("No users found.");
            }
            Console.Read();
        }
        public DirectoryQuickstart()
        {
            UserCredential credential;

            using (var stream =
                       new System.IO.FileStream("credentialsDirectory.json", System.IO.FileMode.Open, System.IO.FileAccess.Read))
            {
                // The file token.json stores the user's access and refresh tokens, and is created
                // automatically when the authorization flow completes for the first time.
                string credPath = "tokenDirectory.json";
                credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
                    GoogleClientSecrets.Load(stream).Secrets,
                    Scopes,
                    "*****@*****.**",
                    CancellationToken.None,
                    new FileDataStore(credPath, true)).Result;
                Console.WriteLine("Credential file saved to: " + credPath);
            }

            // Create Directory API service.
            var service = new DirectoryService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName       = ApplicationName,
            });

            // Define parameters of request.
            UsersResource.ListRequest request = service.Users.List();
            request.Customer   = "my_customer";
            request.MaxResults = 10;
            request.OrderBy    = UsersResource.ListRequest.OrderByEnum.Email;

            // List users.
            IList <User> users = request.Execute().UsersValue;

            Console.WriteLine("Users:");
            if (users != null && users.Count > 0)
            {
                foreach (var userItem in users)
                {
                    Console.WriteLine("{0} ({1})", userItem.PrimaryEmail,
                                      userItem.Name.FullName);
                }
            }
            else
            {
                Console.WriteLine("No users found.");
            }
            Console.Read();
        }
Example #6
0
        /// <summary>
        /// Used to get a specific directory user.
        /// Note that if multiple users match the given parameters then the first one is returned.
        /// </summary>
        /// <param name="query">The query to user to get the list of users. See the Directory API docs for supported syntax</param>
        /// <param name="email">The email of the user to find</param>
        /// <param name="userID">The ID of the user to get</param>
        /// <returns>The requested directory user</returns>
        public GoogleAdminDirectoryData.User GetDirectoryUser(string query = null, string email = null, string userID = null)
        {
            // Get the Directory service
            DirectoryService service = GetDirectoryService();

            // If a user ID has been specified, then we can get the user directly
            GoogleAdminDirectoryData.User user = null;
            if (userID != null)
            {
                user = service.Users.Get(userID).Execute();
            }
            else
            {
                // Initialise the given query if needed
                if (query == null)
                {
                    query = "";
                }

                // If an email has been supplied, then add it to the current query
                if (email != null)
                {
                    // If the query isn't empty then add an 'and' before the email query
                    if (query.Length > 0)
                    {
                        query += " and ";
                    }

                    // Add the given email to the query
                    query += "email='" + email + "'";
                }

                // Create the list users request to locate the given user
                UsersResource.ListRequest listRequest = service.Users.List();
                listRequest.Domain     = DirectoryServices_Domain;
                listRequest.Query      = query;
                listRequest.MaxResults = 1;

                // Get the list of users
                GoogleAdminDirectoryData.Users users = listRequest.Execute();

                // Get the first returned user if possible
                if (users != null && users.UsersValue != null && users.UsersValue.Count > 0)
                {
                    user = users.UsersValue[0];
                }
            }

            return(user);
        }
Example #7
0
        /// <summary>
        /// Used to get a list of users from the Directory API.
        /// </summary>
        /// <param name="query">The query to use to get the list of users. See the Directory API docs for supported syntax</param>
        /// <param name="maxUsers">The maximum number of users that can be returned from the request</param>
        /// <returns>The list of requested users</returns>
        public GoogleAdminDirectoryData.Users GetDirectoryUsers(string query = "", int maxUsers = 100)
        {
            // Get the Directory service
            DirectoryService service = GetDirectoryService();

            // Prepare the list request
            UsersResource.ListRequest listRequest = service.Users.List();
            listRequest.Domain     = DirectoryServices_Domain;
            listRequest.Query      = query;
            listRequest.MaxResults = maxUsers;

            // Get the list of users
            GoogleAdminDirectoryData::Users users = listRequest.Execute();

            return(users);
        }
Example #8
0
        public async static Task <Users> GetOrgUnits2(UserCredential credential, string userid)
        {
            var service = new DirectoryService(new BaseClientService.Initializer
            {
                HttpClientInitializer = credential,
                ApplicationName       = "UbiGrade"
            });

            UsersResource.ListRequest request = service.Users.List();
            request.Customer   = "my_customer";
            request.MaxResults = 10;
            request.OrderBy    = UsersResource.ListRequest.OrderByEnum.Email;

            // List users.
            IList <User> users = request.Execute().UsersValue;
            var          x     = await request.ExecuteAsync();

            return(x);
        }
Example #9
0
        public static void Main(string[] args)
        {
            //Service account Email
            //NOTE: This is the account for the Service Client
            string serviceAccountEmail = "*****@*****.**";

            //Path to Downloaded Key
            var path = @"Path\To\key.p12";

            //Generate a Certificate using the Key downloaded from the Api Console
            var certificate = new X509Certificate2(path, "notasecret", X509KeyStorageFlags.Exportable);

            //Create the Credential
            ServiceAccountCredential serviceCredential = new ServiceAccountCredential(
                new ServiceAccountCredential.Initializer(serviceAccountEmail)
            {
                //Define the Scopes You want the credential to Access
                Scopes = new[]
                {
                    DirectoryService.Scope.AdminDirectoryUser,
                },
                //Specify the User that this service Credential is Impersonating. Typically your Google Apps Admin Account
                User = "******"
            }.FromCertificate(certificate));

            //Instantiate the Service (Could be any of the Google Api Services)
            var service = new DirectoryService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = serviceCredential,
            });

            // Define parameters of request.
            UsersResource.ListRequest request = service.Users.List();
            //Set the Domain of the Request
            request.Domain = "domain.com";

            // List users.
            var users = request.Execute().UsersValue;

            users.Select(u => u.PrimaryEmail).ToList().ForEach(Console.WriteLine);
            Console.ReadKey();
        }
Example #10
0
        public IHttpActionResult AddDomain(string newdomainprefix)
        {
            try
            {
                string domainName    = "blackteatest.in";
                string newDomainName = newdomainprefix + "." + domainName;
                var    service       = new DirectoryService(new BaseClientService.Initializer()
                {
                    HttpClientInitializer = AppFlowMetadata.UserCredential,
                    ApplicationName       = AppFlowMetadata.AppName,
                });

                UsersResource.ListRequest listrequest = service.Users.List();
                listrequest.Domain     = domainName;
                listrequest.MaxResults = 10;

                IList <User> users  = listrequest.Execute().UsersValue;
                string       custID = string.Empty;
                if (users != null && users.Count > 0)
                {
                    custID = users[0].CustomerId;
                }

                Domains domain = new Domains()
                {
                    DomainName = newDomainName
                };
                DomainsResource.InsertRequest insReq = service.Domains.Insert(domain, custID);

                var insResp = insReq.Execute();
            }
            catch (Exception)
            {
            }

            return(Ok());
        }
Example #11
0
        static void Main(string[] args)
        {
            bool   show_help         = false;
            string domain            = "";
            string pathRazorTemplate = "";
            string pathSecretFile    = "client_secret.json";
            string user = "";

            var p = new OptionSet()
            {
                { "d|domain=", "the domain where you'll change the signatures.",
                  v => domain = v },
                { "t|template=",
                  "the file path of the razor template that will used.",
                  v => pathRazorTemplate = v },
                { "s|secret=", "the file with the secret from Google console.",
                  v => pathSecretFile = v },
                { "u|user="******"an specific user to apply the signature.",
                  v => user = v },
                { "a|all", "apply the signature to every user form the domain.",
                  v => { if (v != null)
                         {
                             user = "";
                         }
                  } },
                { "h|help", "show this message and exit",
                  v => show_help = v != null },
            };

            List <string> extra;

            try
            {
                extra = p.Parse(args);
            }
            catch (OptionException e)
            {
                Console.Write("Error: ");
                Console.WriteLine(e.Message);
                Console.WriteLine("Try --help for more information.");
                return;
            }

            if (show_help)
            {
                ShowHelp(p);
                return;
            }


            UserCredential credential = GetCredentials(pathSecretFile);

            var service = new DirectoryService(new BaseClientService.Initializer()
            {
                HttpClientInitializer = credential,
                ApplicationName       = ApplicationName,
            });

            IList <User> users = new List <User>();

            if (!string.IsNullOrWhiteSpace(user))
            {
                users.Add(service.Users.Get(user).Execute());
            }
            else
            {
                UsersResource.ListRequest request = service.Users.List();
                request.Domain     = domain;
                request.Projection = UsersResource.ListRequest.ProjectionEnum.Full;
                users = request.Execute().UsersValue;
            }

            OAuth2Parameters parameter = new OAuth2Parameters()
            {
                AccessToken = credential.Token.AccessToken
            };

            var requestFactory = new GOAuth2RequestFactory("apps", ApplicationName, parameter);
            var serviceGmail   = new GoogleMailSettingsService("revolute.academy", ApplicationName);

            serviceGmail.RequestFactory = requestFactory;

            Console.WriteLine("Users:");
            if (users != null)
            {
                foreach (var userItem in users)
                {
                    if (userItem.IsMailboxSetup.HasValue && userItem.IsMailboxSetup.Value)
                    {
                        var     signature = Render.Execute(pathRazorTemplate, userItem);
                        var     userName  = GetUser(userItem.PrimaryEmail);
                        dynamic obj       = userItem.Organizations;

                        serviceGmail.UpdateSignature(userName, signature);
                        Console.WriteLine("New signature for {0}", userName);
                    }
                }
            }
            else
            {
                Console.WriteLine("No users found.");
            }

            Console.WriteLine("Signatures updated");
        }