Пример #1
0
 private void btnAdminUserToggleToopherEnabled_Click(object sender, EventArgs e)
 {
     try {
         if (adminUserIsKnown)
         {
             ToopherSettings    settings = new ToopherSettings();
             Toopher.ToopherAPI api      = new Toopher.ToopherAPI(settings.ToopherConsumerKey, settings.ToopherConsumerSecret, baseUrl: settings.ToopherBaseUrl);
             api.SetToopherEnabledForUser(adminUserName, !adminUserEnabled);
         }
     } finally {
         loadUserPairingStatus();
     }
 }
Пример #2
0
        private void btnTestApiCreds_Click(object sender, EventArgs e)
        {
            Toopher.ToopherAPI api = new Toopher.ToopherAPI(tbApiKey.Text, tbApiSecret.Text, baseUrl: tbApiUrl.Text);
            AsyncLoggableJob   job = new AsyncLoggableJob(new TestApiJob(api));

            LogUI form = new LogUI(job);

            try {
                this.Enabled = false;
                form.ShowDialog();
            } finally {
                this.Enabled = true;
            }
        }
Пример #3
0
        private void loadUserPairingStatus()
        {
            if (this.InvokeRequired)
            {
                this.Invoke((Action) delegate { loadUserPairingStatus(); });
            }
            else
            {
                adminUserName = tbAdminUsername.Text.ToLower();
                ToopherSettings settings = new ToopherSettings();

                Toopher.ToopherAPI api = new Toopher.ToopherAPI(settings.ToopherConsumerKey, settings.ToopherConsumerSecret, baseUrl: settings.ToopherBaseUrl);
                adminUserIsKnown = false;
                adminUserPaired  = false;
                adminUserEnabled = false;
                try {
                    IDictionary <string, object> userData = api.SearchForUser(adminUserName);
                    adminUserPairings = api.GetUserPairings(adminUserName);
                    adminUserPaired   = adminUserPairings.Any((p) => p.enabled && !(p["deactivated"].ToString().ToLower() == "true"));
                    if (userData.ContainsKey("disable_toopher_auth"))
                    {
                        adminUserEnabled = userData["disable_toopher_auth"].ToString().ToLower() != "true";
                    }
                    else
                    {
                        adminUserEnabled = true;
                    }
                    adminUserIsKnown = true;
                } catch (Toopher.RequestError err) {
                    adminUserIsKnown = false;
                    if (err.Message == "No users with name = " + adminUserName)
                    {
                        // effectively the same as a UserUnknownError - ignore
                    }
                    else
                    {
                        pnlAdminUserStatus.Visible = false;
                        MetroFramework.MetroMessageBox.Show(this, "Error retrieving user data: " + err.Message);
                    }
                }
                pnlAdminUserStatus.Visible = true;
                pnlAdminUserStatus.Enabled = true;
                updatePairedStatusGuiElements();
            }
        }
Пример #4
0
        private void btnAdminPairUnpairUser_Click(object sender, EventArgs e)
        {
            ToopherSettings settings = new ToopherSettings();

            Toopher.ToopherAPI api = new Toopher.ToopherAPI(settings.ToopherConsumerKey, settings.ToopherConsumerSecret, baseUrl: settings.ToopherBaseUrl);

            if (adminUserPaired)
            {
                try {
                    pnlAdminUserStatus.Enabled = false;
                    foreach (var pairing in adminUserPairings)
                    {
                        api.DeactivatePairing(pairing.id);
                    }
                } finally {
                    loadUserPairingStatus();
                }
            }
            else
            {
                PromptForm f = new PromptForm("Enter a Toopher Pairing Phrase");
                f.ShowDialog();
                string pairingPhrase = f.tbUserInput.Text.ToLower();

                LogUI logUI = new LogUI("Pairing with Toopher");
                logUI.Show();
                Action pairingTask = () => {
                    try {
                        Toopher.PairingStatus pairing = api.Pair(pairingPhrase, adminUserName);
                        while (pairing.pending && !pairing.enabled)
                        {
                            Thread.Sleep(200);
                            logUI.OnLog("checking pairing status...");
                            pairing = api.GetPairingStatus(pairing.id);
                        }
                        logUI.OnLog("Pairing Result: " + (pairing.enabled ? "Enabled" : "Denied"));
                    } finally {
                        logUI.OnDone();
                        loadUserPairingStatus();
                    }
                };
                new Task(pairingTask).Start();
            }
        }
Пример #5
0
 public TestApiJob(Toopher.ToopherAPI api)
 {
     this.api = api;
 }
Пример #6
0
 public TestApiJob(Toopher.ToopherAPI api)
 {
     this.api = api;
 }
Пример #7
0
        private void btnAdminPairUnpairUser_Click(object sender, EventArgs e)
        {
            ToopherSettings settings = new ToopherSettings ();
            Toopher.ToopherAPI api = new Toopher.ToopherAPI (settings.ToopherConsumerKey, settings.ToopherConsumerSecret, baseUrl: settings.ToopherBaseUrl);

            if(adminUserPaired) {
                try {
                    pnlAdminUserStatus.Enabled = false;
                    foreach(var pairing in adminUserPairings) {
                        api.DeactivatePairing (pairing.id);
                    }
                } finally {
                    loadUserPairingStatus ();
                }
            } else {
                PromptForm f = new PromptForm ("Enter a Toopher Pairing Phrase");
                f.ShowDialog ();
                string pairingPhrase = f.tbUserInput.Text.ToLower ();

                LogUI logUI = new LogUI ("Pairing with Toopher");
                logUI.Show ();
                Action pairingTask = () => {
                    try {
                        Toopher.PairingStatus pairing = api.Pair (pairingPhrase, adminUserName);
                        while(pairing.pending && !pairing.enabled) {
                            Thread.Sleep (200);
                            logUI.OnLog ("checking pairing status...");
                            pairing = api.GetPairingStatus (pairing.id);
                        }
                        logUI.OnLog ("Pairing Result: " + (pairing.enabled ? "Enabled" : "Denied"));
                    } finally {
                        logUI.OnDone ();
                        loadUserPairingStatus ();
                    }
                };
                new Task (pairingTask).Start ();

            }
        }
Пример #8
0
        private void loadUserPairingStatus()
        {
            if(this.InvokeRequired) {
                this.Invoke ((Action)delegate { loadUserPairingStatus (); });
            } else {
                adminUserName = tbAdminUsername.Text.ToLower ();
                ToopherSettings settings = new ToopherSettings ();

                Toopher.ToopherAPI api = new Toopher.ToopherAPI (settings.ToopherConsumerKey, settings.ToopherConsumerSecret, baseUrl: settings.ToopherBaseUrl);
                adminUserIsKnown = false;
                adminUserPaired = false;
                adminUserEnabled = false;
                try {
                    IDictionary<string, object> userData = api.SearchForUser (adminUserName);
                    adminUserPairings = api.GetUserPairings (adminUserName);
                    adminUserPaired = adminUserPairings.Any ((p) => p.enabled && !(p["deactivated"].ToString ().ToLower () == "true"));
                    if(userData.ContainsKey ("disable_toopher_auth")) {
                        adminUserEnabled = userData["disable_toopher_auth"].ToString ().ToLower () != "true";
                    } else {
                        adminUserEnabled = true;
                    }
                    adminUserIsKnown = true;
                } catch(Toopher.RequestError err) {
                    adminUserIsKnown = false;
                    if(err.Message == "No users with name = " + adminUserName) {
                        // effectively the same as a UserUnknownError - ignore
                    } else {
                        pnlAdminUserStatus.Visible = false;
                        MetroFramework.MetroMessageBox.Show (this, "Error retrieving user data: " + err.Message);
                    }
                }
                pnlAdminUserStatus.Visible = true;
                pnlAdminUserStatus.Enabled = true;
                updatePairedStatusGuiElements ();
            }
        }
Пример #9
0
        private void btnTestApiCreds_Click(object sender, EventArgs e)
        {
            Toopher.ToopherAPI api = new Toopher.ToopherAPI (tbApiKey.Text, tbApiSecret.Text, baseUrl: tbApiUrl.Text);
            AsyncLoggableJob job = new AsyncLoggableJob (new TestApiJob (api));

            LogUI form = new LogUI (job);
            try {
                this.Enabled = false;
                form.ShowDialog ();
            } finally {
                this.Enabled = true;
            }
        }
Пример #10
0
 private void btnAdminUserToggleToopherEnabled_Click(object sender, EventArgs e)
 {
     try {
         if(adminUserIsKnown) {
             ToopherSettings settings = new ToopherSettings ();
             Toopher.ToopherAPI api = new Toopher.ToopherAPI (settings.ToopherConsumerKey, settings.ToopherConsumerSecret, baseUrl: settings.ToopherBaseUrl);
             api.SetToopherEnabledForUser (adminUserName, !adminUserEnabled);
         }
     } finally {
         loadUserPairingStatus ();
     }
 }