Beispiel #1
0
        public BooleanResult AuthorizeUser(SessionProperties properties)
        {
            UserInformation userInfo = properties.GetTrackedSingle <UserInformation>();

            if (!ReferenceEquals(null, Settings.ApplicationID) && !ReferenceEquals(null, Settings.Secret))
            {
                string applicationID = Util.GetSettingsString((string)Settings.ApplicationID);
                string secret        = Util.GetSettingsString((string)Settings.Secret);
                string accountID     = Util.GetSettingsString((string)Settings.AccountID);

                //m_logger.InfoFormat("ApplicationID: {0}", applicationID);
                //m_logger.InfoFormat("Secret: {0}", secret);
                //m_logger.InfoFormat("AccountID: {0}", accountID);


                Latch         latch    = new Latch(applicationID, secret);
                LatchResponse response = latch.Status(accountID);

                // One of the ugliest lines of codes I ever wrote, but quickest way to access the object without using json serialization
                try
                {
                    Dictionary <string, object> operations  = ((Dictionary <string, object>)response.Data["operations"]);
                    Dictionary <string, object> appSettings = ((Dictionary <string, object>)operations[(applicationID)]);
                    string status = ((string)appSettings["status"]);

                    m_logger.InfoFormat("Latch status is {0}", status);

                    if (status == "on")
                    {
                        return new BooleanResult()
                               {
                                   Success = true, Message = "Ready to go!"
                               }
                    }
                    ;
                    else
                    {
                        return new BooleanResult()
                               {
                                   Success = false, Message = "Latch is protecting this account!"
                               }
                    };
                }
                catch (Exception)
                {
                    return(new BooleanResult()
                    {
                        Success = true, Message = "Something went wrong, letting you in because I don't want to lock you out!"
                    });
                }
            }
            else
            {
                return(new BooleanResult()
                {
                    Success = false, Message = "Latch is not correctly configured."
                });
            }
        }
Beispiel #2
0
        public Configuration()
        {
            InitializeComponent();

            if (!ReferenceEquals(null, Main.Settings.ApplicationID) && !ReferenceEquals(null, Main.Settings.Secret))
            {
                tbApplicationID.Text = Util.GetSettingsString((string)Main.Settings.ApplicationID);
                tbSecret.Text        = Util.GetSettingsString((string)Main.Settings.Secret);
            }

            if (!ReferenceEquals(null, Main.Settings.AccountID))
            {
                tbAccountID.Text = Util.GetSettingsString((string)Main.Settings.AccountID);
            }
        }