Exemplo n.º 1
0
        public ObservableAuthorizationsClient(IGitHubClient client)
        {
            Ensure.ArgumentNotNull(client, "client");

            _client     = client.Authorization;
            _connection = client.Connection;
        }
Exemplo n.º 2
0
        /// <summary>
        /// This method will create a new authorization for the specified OAuth application, only if an authorization
        /// for that application doesn’t already exist for the user. It returns the user’s token for the application
        /// if one exists. Otherwise, it creates a new one.
        /// </summary>
        /// <remarks>
        /// <para>
        /// This method allows the caller to provide a callback which is used to retrieve the two-factor code from
        /// the user. Typically the callback is used to show some user interface to the user.
        /// </para>
        /// <para>
        /// See <a href="http://developer.github.com/v3/oauth/#list-your-authorizations">API documentation</a>
        /// for more details.
        /// </para>
        /// </remarks>
        /// <param name="authorizationsClient">The <see cref="IAuthorizationsClient" /> this method extends</param>
        /// <param name="clientId">Client Id for the OAuth application that is requesting the token</param>
        /// <param name="clientSecret">The client secret</param>
        /// <param name="newAuthorization">Defines the scopes and metadata for the token</param>
        /// <param name="twoFactorChallengeHandler">Callback used to retrieve the two-factor authentication code
        /// from the user</param>
        /// <returns></returns>
        public static async Task <ApplicationAuthorization> GetOrCreateApplicationAuthentication(
            this IAuthorizationsClient authorizationsClient,
            string clientId,
            string clientSecret,
            NewAuthorization newAuthorization,
            Func <TwoFactorRequiredException, Task <TwoFactorChallengeResult> > twoFactorChallengeHandler
            )
        {
            TwoFactorRequiredException twoFactorException = null;

            try
            {
                return(await authorizationsClient.GetOrCreateApplicationAuthentication(clientId, clientSecret, newAuthorization).ConfigureAwait(false));
            }
            catch (TwoFactorRequiredException exception)
            {
                twoFactorException = exception;
            }
            var twoFactorChallengeResult = await twoFactorChallengeHandler(twoFactorException).ConfigureAwait(false);

            return(await(twoFactorChallengeResult.ResendCodeRequested
                ? authorizationsClient.GetOrCreateApplicationAuthentication(
                             clientId,
                             clientSecret,
                             newAuthorization,
                             twoFactorChallengeHandler).ConfigureAwait(false)
                : authorizationsClient.GetOrCreateApplicationAuthentication(
                             clientId,
                             clientSecret,
                             newAuthorization,
                             twoFactorChallengeResult.AuthenticationCode).ConfigureAwait(false)));
        }
        public ObservableAuthorizationsClient(IGitHubClient client)
        {
            Ensure.ArgumentNotNull(client, "client");

            _client = client.Authorization;
            _connection = client.Connection;
        }
Exemplo n.º 4
0
 public AclTreeAuthorizationHandler(IAuthorizationsClient authorizationClient)
 {
     this.authorizationClient = authorizationClient;
 }
 public AclDirectAuthorizationHandler(IAuthorizationsClient authorizationClient)
 {
     this.authorizationClient = authorizationClient;
 }