Exemple #1
0
        void PasswordEntryCompleted(object sender, EventArgs eventArgs)
        {
            UsernameEntry.IsEnabled    = false;
            PasswordEntry.IsEnabled    = false;
            LoadingIndicator.IsRunning = true;
            StatusLabel.IsVisible      = false;
            LoginButton.IsVisible      = false;
            Application.Current.Properties["notificationTimestamp"] = (long)-1;
            // Dependency injection per interfaces
            IAuthenticator auth = AuthenticationSystemManager.NewAuthenticator();

            auth.Result += LoginResponse;
            auth.Login(UsernameEntry.Text, PasswordEntry.Text);
        }
Exemple #2
0
        public LoginPage()
        {
            InitializeComponent();

#pragma warning disable CS0618 // Type or member is obsolete
            RegisterLabel.GestureRecognizers.Add(new TapGestureRecognizer(async(view) =>
            {
                if (!LoadingIndicator.IsRunning && !IsRegisterPageOpen)
                {
                    IsRegisterPageOpen = true;
                    await Navigation.PushModalAsync(new NavigationPage(new RegisterPage()));
                }
            }));
#pragma warning restore CS0618 // Type or member is obsolete

            UsernameEntry.Completed += (o, e) =>
            {
                PasswordEntry.Focus();
            };
            PasswordEntry.Completed += PasswordEntryCompleted;
            if (Application.Current.Properties.ContainsKey("PrivateKey"))
            {
                UsernameEntry.IsEnabled    = false;
                PasswordEntry.IsEnabled    = false;
                LoadingIndicator.IsRunning = true;
                StatusLabel.IsVisible      = false;
                LoginButton.IsVisible      = false;

                // Dependency injection per interfaces
                var auth = AuthenticationSystemManager.NewAuthenticator();
                auth.Result += LoginResponse;
                auth.Login((string)Application.Current.Properties["PrivateKey"]);
            }
            MessagingCenter.Subscribe <RegisterPage, Tuple <string, string> >(this, "Success", (obj, loginInfo) =>
            {
                UsernameEntry.Text = loginInfo.Item1;
                PasswordEntry.Text = loginInfo.Item2;
                PasswordEntryCompleted(null, null);
            });
            MessagingCenter.Subscribe <RegisterPage>(this, "Closing", (obj) =>
            {
                IsRegisterPageOpen = false;
            });
        }
Exemple #3
0
        public void PrivateKeyTest()
        {
            LocalUser           user   = Login();
            bool                done   = false;
            LocalUser           user1  = null;
            AuthenticatorStatus status = AuthenticatorStatus.UnknownError;

            var auth = AuthenticationSystemManager.NewAuthenticator();

            auth.Result += (_status, _user) =>
            {
                status = _status;
                user1  = _user;
                done   = true;
            };
            auth.Login(user.PrivateKey);
            while (!done)
            {
            }
            Assert.AreEqual(status, AuthenticatorStatus.Success);
            Assert.AreEqual(user.PrivateKey, user1.PrivateKey);
            Assert.AreEqual(user.Username, user1.Username);
        }
Exemple #4
0
        public static LocalUser Login(string username = "******", string password = "******")
        {
            AuthenticatorStatus status = AuthenticatorStatus.UnknownError;
            LocalUser           user   = null;
            bool done = false;
            var  auth = AuthenticationSystemManager.NewAuthenticator();

            auth.Result += (_status, _user) =>
            {
                status = _status;
                user   = _user;
                done   = true;
            };
            auth.Login(username, password);
            while (!done)
            {
            }
            Assert.AreEqual(status, AuthenticatorStatus.Success);
            Assert.AreNotEqual(user, null);
            Assert.AreEqual(user.Username, username);
            LocalUserManager.LocalUser = user;
            return(user);
        }
Exemple #5
0
        private void RegisterButton_Clicked(object sender, EventArgs e)
        {
            RegisterButton.IsEnabled    = false;
            RegisterButton.IsVisible    = false;
            ActivityIndicator.IsVisible = true;
            ActivityIndicator.IsRunning = true;
            StatusLabel.Text            = "";
            string username    = Username.Text;
            string password    = Password.Text;
            var    registrator = AuthenticationSystemManager.NewRegistrator();

            registrator.Result += (status) =>
            {
                Device.BeginInvokeOnMainThread(async() =>
                {
                    ActivityIndicator.IsVisible = false;
                    ActivityIndicator.IsRunning = false;
                    if (status == RegisterStatus.Success)
                    {
                        MessagingCenter.Send(this, "Success", new Tuple <string, string>(username, password));
                        await Navigation.PopModalAsync();
                        //Success
                    }
                    else
                    {
                        RegisterButton.IsEnabled = true;
                        RegisterButton.IsVisible = true;
                        switch (status)
                        {
                        case RegisterStatus.UsernameEmpty:
                            StatusLabel.Text = "Slapyvardis negali būti tuščias";
                            break;

                        case RegisterStatus.UsernameInvalid:
                            StatusLabel.Text = "Slapyvardis netinkamas";
                            break;

                        case RegisterStatus.UsernameTooShort:
                            StatusLabel.Text = "Slapvyardis per trumpas";
                            break;

                        case RegisterStatus.UsernameTooLong:
                            StatusLabel.Text = "Slapyvardis per ilgas";
                            break;

                        case RegisterStatus.PasswordEmpty:
                            StatusLabel.Text = "Slaptažodis negali būti tuščias";
                            break;

                        case RegisterStatus.PasswordTooShort:
                            StatusLabel.Text = "Slaptažodis per trumpas";
                            break;

                        case RegisterStatus.PasswordTooLong:
                            StatusLabel.Text = "Slaptažodis per ilgas";
                            break;

                        case RegisterStatus.PasswordsDoNotMatch:
                            StatusLabel.Text = "Slaptažodžiai nesutampa";
                            break;

                        case RegisterStatus.FirstnameEmpty:
                            StatusLabel.Text = "Vardas negali būti tuščias";
                            break;

                        case RegisterStatus.FirstnameTooShort:
                            StatusLabel.Text = "Vardas per trumpas";
                            break;

                        case RegisterStatus.FirstnameTooLong:
                            StatusLabel.Text = "Vardas per ilgas";
                            break;

                        case RegisterStatus.FirstnameInvalid:
                            StatusLabel.Text = "Vardas netinkamas";
                            break;

                        case RegisterStatus.LastNameEmpty:
                            StatusLabel.Text = "Pavardė negali būti tuščia";
                            break;

                        case RegisterStatus.LastNameTooShort:
                            StatusLabel.Text = "Pavardė per trumpa";
                            break;

                        case RegisterStatus.LastNameTooLong:
                            StatusLabel.Text = "Pavardė per ilga";
                            break;

                        case RegisterStatus.LastNameInvalid:
                            StatusLabel.Text = "Pavardė netinkama";
                            break;

                        case RegisterStatus.EmailEmpty:
                            StatusLabel.Text = "El. paštas negali būti tuščias";
                            break;

                        case RegisterStatus.EmailTooShort:
                            StatusLabel.Text = "El. paštas per trumpas";
                            break;

                        case RegisterStatus.EmailTooLong:
                            StatusLabel.Text = "El. paštas per ilgas";
                            break;

                        case RegisterStatus.EmailInvalid:
                            StatusLabel.Text = "El. paštas netaisyklingas";
                            break;

                        case RegisterStatus.Success:
                            StatusLabel.Text = "Pavyko";
                            break;

                        case RegisterStatus.JsonReadException:
                            StatusLabel.Text = "Klaidingas rezultatas";
                            break;

                        case RegisterStatus.FailedToConnect:
                            StatusLabel.Text = "Nepavyko prisijungti prie tinklo";
                            break;

                        case RegisterStatus.FieldsMissing:
                            StatusLabel.Text = "Trūksta laukų";
                            break;

                        case RegisterStatus.UnknownError:
                            StatusLabel.Text = "Nežinoma klaida";
                            break;

                        default:
                            StatusLabel.Text = "Nežinoma klaida";
                            break;
                        }
                    }
                });
            };
            registrator.Register(username, password, PasswordRepeat.Text, FirstName.Text, LastName.Text, Email.Text);
        }