Exemplo n.º 1
0
        public static GoogleAppsAddGroupMemberProgramOptions Parse(string[] args)
        {
            var programOptions = new GoogleAppsAddGroupMemberProgramOptions();

            programOptions.Options = new OptionSet()
            {
                { "d|domain=", "{DOMAIN} containing group", x => programOptions.Domain = x },
                { "u|username="******"{USERNAME}", x => programOptions.Username = x },
                { "p|password="******"{PASSWORD}", x => programOptions.Password = x },
                { "f|file=", "Tab-delimited {FILE} of group and member", x => programOptions.File = x },
                { "l|list", "Print the complete list of groups in the domain and exit.", x => programOptions.List = (x != null) },
                { "m|list-members=", "Print the list of members in a group and exit.", x => programOptions.ListMembers = x },
                { "g|list-groups-for=", "Print the list of groups for a user and exit", x => programOptions.ListGroupsForMember = x },
                { "?|help", "Show this message and exit.", x => programOptions.Help = (x != null) }
            };

            programOptions.Options.Parse(args);

            return(programOptions);
        }
Exemplo n.º 2
0
        static void CollectOptionsInteractiveConsole(GoogleAppsAddGroupMemberProgramOptions options)
        {
            while (string.IsNullOrEmpty(options.Domain))
            {
                Console.Write("Google Apps Domain or Sub-domain: ");
                options.Domain = Console.ReadLine();
            }

            while (string.IsNullOrEmpty(options.Username))
            {
                Console.Write("Admin username: "******"Password: "******"\b \b");
                        }
                    }
                    else
                    {
                        stringBuilder.Append(keyInfo.KeyChar);
                        Console.Write("*");
                    }
                }
                Console.WriteLine();
                options.Password = stringBuilder.ToString();
            }
        }
Exemplo n.º 3
0
        static void Main(string[] args)
        {
            //parse options
            var options = GoogleAppsAddGroupMemberProgramOptions.Parse(args);

            if (options.Help)
            {
                options.PrintHelp(Console.Out); return;
            }
            if (options.Incomplete)
            {
                CollectOptionsInteractiveConsole(options);
            }
            if (!options.Username.Contains("@"))
            {
                Console.WriteLine("Whoops. Your username must be an email address.");
                Console.WriteLine();
                options.Username = null;
                CollectOptionsInteractiveConsole(options);
            }
            //create service object
            var service = new AppsService(options.Domain, options.Username, options.Password);

            try
            {
                if (options.List)
                {
                    ListGroups(Console.Out, service);
                }
                else if (!string.IsNullOrEmpty(options.ListMembers))
                {
                    ListGroupMembers(Console.Out, service, options.ListMembers);
                }
                else if (!string.IsNullOrEmpty(options.ListGroupsForMember))
                {
                    ListGroupsForMember(Console.Out, service, options.ListGroupsForMember);
                }
                else
                {
                    //add members to group
                    if (string.IsNullOrEmpty(options.File))
                    {
                        AddGroupMemberInteractiveConsole(service, options.Domain);
                    }
                    else
                    {
                        AddGroupMemberBatch(Console.Out, service, options.Domain, options.File);
                    }
                }
            }
            catch (InvalidCredentialsException)
            {
                Console.WriteLine();
                Console.WriteLine("Invalid Credentials.");
            }
            catch (CaptchaRequiredException)
            {
                Console.WriteLine();
                Console.WriteLine("Your account has been locked by Google.");
                Console.WriteLine("Use your browser to unlock your account.");
                Console.WriteLine("https://www.google.com/accounts/UnlockCaptcha");
            }
        }
Exemplo n.º 4
0
        static void AddGroupMemberInteractiveConsole(AppsService service, string primaryDomain)
        {
            Console.WriteLine();
            Console.WriteLine("No batch file option (-f). Entering interactive mode.");
            Console.WriteLine("Press CTRL+C to quit.");
            Console.WriteLine();
            string lastGroup = null;

            while (true)  //continue until CTRL+C
            {
                bool   confirm = false;
                string group = null, member = null;
                while (string.IsNullOrEmpty(group))
                {
                    if (lastGroup == null)
                    {
                        Console.Write("Group [group@domain]: ");
                    }
                    else
                    {
                        Console.Write(string.Format("Group {0} [enter to confirm]: ", lastGroup));
                    }
                    group = Console.ReadLine();
                    if (lastGroup != null && string.IsNullOrEmpty(group))
                    {
                        group = lastGroup;
                    }
                    lastGroup = group;
                }
                while (string.IsNullOrEmpty(member))
                {
                    Console.Write(String.Format("Member to add to {0}: ", group));
                    member = Console.ReadLine();
                }

                Console.Write(string.Format("Please confirm: Add {0} to {1} (y/n)? ", member, group));
                confirm = Console.ReadLine().StartsWith("y", StringComparison.InvariantCultureIgnoreCase);
                if (!confirm)
                {
                    Console.WriteLine("Cancelled. Group member not added.");
                }
                else
                {
                    try
                    {
                        Console.WriteLine(AddGroupMember(service, group, member));
                    }
                    catch (InvalidCredentialsException)
                    {
                        Console.WriteLine();
                        Console.WriteLine("Invalid Credentials.");
                        Console.WriteLine();
                        //collect new credentials
                        var options = new GoogleAppsAddGroupMemberProgramOptions()
                        {
                            Domain = primaryDomain
                        };
                        CollectOptionsInteractiveConsole(options);
                        service = new AppsService(options.Domain, options.Username, options.Password);
                    }
                }
                Console.WriteLine();
            }
        }
        static void CollectOptionsInteractiveConsole( GoogleAppsAddGroupMemberProgramOptions options )
        {
            while( string.IsNullOrEmpty( options.Domain ) )
            {
                Console.Write( "Google Apps Domain or Sub-domain: " );
                options.Domain = Console.ReadLine();
            }

            while( string.IsNullOrEmpty( options.Username ) )
            {
                Console.Write( "Admin username: "******"Password: "******"\b \b" );
                        }
                    }
                    else
                    {
                        stringBuilder.Append( keyInfo.KeyChar );
                        Console.Write( "*" );
                    }
                }
                Console.WriteLine();
                options.Password = stringBuilder.ToString();
            }
        }
        static void AddGroupMemberInteractiveConsole( AppsService service, string primaryDomain )
        {
            Console.WriteLine();
            Console.WriteLine( "No batch file option (-f). Entering interactive mode." );
            Console.WriteLine( "Press CTRL+C to quit." );
            Console.WriteLine();
            string lastGroup = null;
            while( true ) //continue until CTRL+C
            {
                bool confirm = false;
                string group=null, member=null;
                while( string.IsNullOrEmpty( group ) )
                {
                    if( lastGroup == null )
                    { Console.Write( "Group [group@domain]: " ); }
                    else
                    { Console.Write( string.Format( "Group {0} [enter to confirm]: ", lastGroup ) ); }
                    group = Console.ReadLine();
                    if( lastGroup != null && string.IsNullOrEmpty( group ) ) { group = lastGroup; }
                    lastGroup = group;
                }
                while( string.IsNullOrEmpty( member ) )
                {
                    Console.Write( String.Format( "Member to add to {0}: ", group ) );
                    member = Console.ReadLine();
                }

                Console.Write( string.Format("Please confirm: Add {0} to {1} (y/n)? ", member, group) );
                confirm = Console.ReadLine().StartsWith( "y", StringComparison.InvariantCultureIgnoreCase );
                if( !confirm )
                {
                    Console.WriteLine( "Cancelled. Group member not added.");
                }
                else
                {
                    try
                    {
                        Console.WriteLine( AddGroupMember( service, group, member ) );
                    }
                    catch( InvalidCredentialsException )
                    {
                        Console.WriteLine();
                        Console.WriteLine( "Invalid Credentials." );
                        Console.WriteLine();
                        //collect new credentials
                        var options = new GoogleAppsAddGroupMemberProgramOptions() { Domain = primaryDomain };
                        CollectOptionsInteractiveConsole( options );
                        service = new AppsService( options.Domain, options.Username, options.Password );
                    }
                }
                Console.WriteLine();
            }
        }
        public static GoogleAppsAddGroupMemberProgramOptions Parse( string[] args )
        {
            var programOptions = new GoogleAppsAddGroupMemberProgramOptions();

            programOptions.Options = new OptionSet()
            {
                { "d|domain=", "{DOMAIN} containing group", x => programOptions.Domain = x },
                { "u|username="******"{USERNAME}", x => programOptions.Username = x },
                { "p|password="******"{PASSWORD}", x => programOptions.Password = x },
                { "f|file=", "Tab-delimited {FILE} of group and member", x => programOptions.File = x },
                { "l|list", "Print the complete list of groups in the domain and exit.", x => programOptions.List = (x != null ) },
                { "m|list-members=", "Print the list of members in a group and exit.", x => programOptions.ListMembers = x },
                { "g|list-groups-for=", "Print the list of groups for a user and exit", x => programOptions.ListGroupsForMember = x },
                { "?|help", "Show this message and exit.", x => programOptions.Help = (x != null) }
            };

            programOptions.Options.Parse( args );

            return programOptions;
        }