예제 #1
0
        private async void buttonChangeRole_Click(object sender, EventArgs e)
        {
            if (this.listviewAccounts.SelectedItems.Count != 1)
            {
                return;
            }

            var selectedItem = this.listviewAccounts.SelectedItems[0];

            try
            {
                var  username = new Shared.Username(selectedItem.Text);
                bool isAdmin  = selectedItem.SubItems[1].Text != "Administrator";
                var  response = await SocketManager.Instance.SendRequest <ChangeAdminResponse>(new ChangeAdminRequest(username, isAdmin));

                selectedItem.SubItems[1].Text = response.username.isAdmin ? "Administrator" : "Standard";
            }
            catch (ResponseException ex)
            {
                using (var dialog = new TaskDialog()
                {
                    Caption = "Cannot Change Role",
                    InstructionText = "Unable to change the role for this user",
                    Text = ex.Message,
                    StandardButtons = TaskDialogStandardButtons.Close,
                    Icon = TaskDialogStandardIcon.Error
                })
                {
                    dialog.Show();
                }
            }
        }
예제 #2
0
        private async void submitButton(object sender, EventArgs e)
        {
            try
            {
                Shared.Application app         = new Shared.Application();
                String             plainTextPw = pwTextBox.Text;
                var               encryptedPw  = Shared.CryptManager.encrypt(plainTextPw, secretKey);
                Shared.Username   username     = new Shared.Username(usernameTextBox.Text, encryptedPw);
                Shared.Username[] userName     = new Shared.Username[] { username };
                app.Usernames = userName;
                app.Type      = appTypeComboBox.Text;
                app.Name      = appNameTextBox.Text;
                NewAppRequest request  = new NewAppRequest(app);
                var           response = await SocketManager.Instance.SendRequest <NewAppResponse>(request);

                this.managerForm.addAppToTree(response.application);
                this.Close();
            }
            catch (ResponseException ex)
            {
                using (var details = new TaskDialog()
                {
                    Caption = "Cannot Add User",
                    InstructionText = "Unable to add this application and user",
                    Text = ex.Message,
                    Icon = TaskDialogStandardIcon.Error,
                    StandardButtons = TaskDialogStandardButtons.Close
                })
                {
                    details.Show();
                }
            }
        }
예제 #3
0
        private async Task SendLoginRequest()
        {
            Console.WriteLine("The Submit button was clicked!");
            String username = this.usernameTextBox.Text;
            String password = this.passwordTextBox.Text;

            Shared.Username user    = new Shared.Username(username, password);
            LoginRequest    msg     = new LoginRequest(user);
            SocketManager   sktMngr = SocketManager.Instance;

            try
            {
                sktMngr.connect(this.serverAddressTextBox.Text, (int)serverPort.Value);

                LoginResponse resp = await sktMngr.SendRequest <LoginResponse>(msg);

                if (resp == null)
                {
                    using (var taskDialog = new TaskDialog()
                    {
                        Caption = "Password Manager",
                        Icon = TaskDialogStandardIcon.Error,
                        InstructionText = "Unable to log in",
                        OwnerWindowHandle = this.Handle,
                        Text = "Make sure the username and password you've entered is correct, and then try again.",
                        StandardButtons = TaskDialogStandardButtons.Close
                    })
                    {
                        taskDialog.Show();
                    }
                }
                else
                {
                    this.isAdmin           = resp.isAdmin;
                    this.IsLoginSuccessful = true;
                    this.Close();

                    this.LoginSucceeded?.Invoke(this, EventArgs.Empty);
                }
            }
            catch (SocketException ex)
            {
                using (var taskDialog = new TaskDialog()
                {
                    Caption = "Password Manager",
                    Icon = TaskDialogStandardIcon.Error,
                    InstructionText = "Unable to connect to the server",
                    Text = "Make sure that the server is running, and then try again.",
                    StandardButtons = TaskDialogStandardButtons.Close,
                    OwnerWindowHandle = this.Handle,
                    DetailsCollapsedLabel = "Show error",
                    DetailsExpandedLabel = "Hide error",
                    DetailsExpandedText = string.Format("{1} (0x{0:X8})", ex.ErrorCode, ex.Message)
                })
                {
                    taskDialog.Show();
                }
            }
        }
예제 #4
0
        public Shared.Username [] getUsers()
        {
            String                 sqlString = "SELECT name, isadmin FROM users";
            SQLiteCommand          command   = new SQLiteCommand(sqlString, dbConnection);
            SQLiteDataReader       reader    = command.ExecuteReader();
            List <Shared.Username> users     = new List <Shared.Username> ();

            while (reader.Read())
            {
                Shared.Username username = new Shared.Username(reader["name"].ToString());
                username.isAdmin = (bool)reader["isadmin"];
                users.Add(username);
            }
            return(users.ToArray());
        }
예제 #5
0
        /**
         * @brief
         *      Gets the list of usernames the 'user' has for the given application
         */
        private Shared.Username [] getUserNames(String appName, String user)
        {
            List <Shared.Username> usernames = new List <Shared.Username>();
            String        sqlString          = "SELECT username FROM applications WHERE application = @application AND name = @name";
            SQLiteCommand command            = new SQLiteCommand(sqlString, dbConnection);

            command.Parameters.AddWithValue("@name", user);
            command.Parameters.AddWithValue("@application", appName);
            SQLiteDataReader reader = command.ExecuteReader();

            while (reader.Read())
            {
                Shared.Username username = new Shared.Username(reader["username"].ToString());
                usernames.Add(username);
            }
            return(usernames.ToArray());
        }
예제 #6
0
        private async void buttonAddUser_Click(object sender, EventArgs e)
        {
            var addUserDialog = new AddUserDialog();

            if (addUserDialog.ShowDialog(this) != DialogResult.OK)
            {
                return;
            }

            // TODO: Should we check isAdmin via Shared.Username instead of CreateNewUserRequest constructor?
            try
            {
                var username = new Shared.Username(addUserDialog.userName, addUserDialog.password);
                var response = await SocketManager.Instance.SendRequest <CreateNewUserResponse>(new CreateNewUserRequest(username, addUserDialog.isAdmin));

                if (response.isSuccessful)
                {
                    var userItem = new ListViewItem(addUserDialog.userName);
                    userItem.SubItems.Add(new ListViewItem.ListViewSubItem()
                    {
                        Text = addUserDialog.isAdmin ? "Administrator" : "Standard"
                    });

                    this.listviewAccounts.Items.Add(userItem);
                }
            }
            catch (ResponseException ex)
            {
                using (var dialog = new TaskDialog()
                {
                    Caption = "Password Manager",
                    InstructionText = "Unable to be add this user",
                    Text = ex.Message,
                    Icon = TaskDialogStandardIcon.Error,
                    StandardButtons = TaskDialogStandardButtons.Close
                })
                {
                    dialog.Show();
                }
            }
        }
예제 #7
0
 public CreateNewUserRequest(Shared.Username user, bool isAdmin = false) :
     base(MessageID, MessageType.Request)
 {
     username  = user;
     makeAdmin = isAdmin;
 }
 public ChangeAdminRequest(Shared.Username user, bool admin) :
     base(MessageID, MessageType.Request)
 {
     username  = user;
     makeAdmin = admin;
 }
예제 #9
0
 public ChangeAdminResponse(Shared.Username user) :
     base(MessageID, MessageType.Response)
 {
     username = user;
 }
예제 #10
0
 public LoginRequest(Shared.Username user) :
     base(MessageID, MessageType.Request)
 {
     username = user;
 }