private void lbUsers_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (lbUsers.SelectedIndex < 0 && lbUsers.SelectedIndex > lbUsers.Items.Count)
            {
                btnDelete.Enabled = false;
            }
            else
            {
                if (_modified)
                {
                    DialogResult dr = MessageBox.Show("User info changed. Save changes ?", "Question", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                    if (dr == DialogResult.Yes)
                    {
                        btnSave_Click(sender, e);
                    }
                }

                tbUserName.Text = "";
                tbUserPass.Text = "";
                tbUserHome.Text = "";

                FTPUser u = _um[lbUsers.SelectedItem.ToString()];

                tbUserName.Text = u.Name;
                tbUserPass.Text = u.SHA1Password;
                tbUserHome.Text = u.Startupdir;
                SetPermissions(u.Permissions);

                btnDelete.Enabled = true;
                _modified         = false;
                btnSave.Enabled   = false;
            }
        }
        private void btnSave_Click(object sender, EventArgs e)
        {
            FTPUser u = _um[lbUsers.SelectedItem.ToString()];

            u.Name = tbUserName.Text;
            u.SetPassword(tbUserPass.Text);
            u.Permissions   = SetPermissions();
            u.Startupdir    = tbUserHome.Text;
            btnSave.Enabled = false;
            UpdateUserPanel();
        }
Beispiel #3
0
        public static void SetUser(string userName, string password, string root)
        {
            if (_serverConfig.Users == null)
            {
                _serverConfig.Users = new ConcurrentDictionary <string, FTPUser>();
            }

            var user = new FTPUser(userName, password, root);

            _serverConfig.Users.AddOrUpdate(userName, user, (k, v) =>
            {
                return(user);
            });
        }
Beispiel #4
0
        public static string GetExactPath(string Path, FTPUser ConnectedUser)
        {
            // Windows : C:\Users\work\Source\Repos\MyFTPServer\MyFTPServer\Classes
            // Linux : /root/myftppath

            if (Path == null)
            {
                Path = "";
            }

            string dir = Path;

            string CurrentWorkingDirectory = ConnectedUser?.CurrentWorkingDirectory ?? "/";

            if ((dir.StartsWith("/") == false && dir.StartsWith(@"\") == false))
            {
                dir = CurrentWorkingDirectory + "/" + dir;
            }
            else
            {
                dir = Path;
            }

            dir = dir.Replace(@"\\", @"\");
            dir = dir.Replace(@"//", @"/");

            if (dir.Contains("/") && !dir.EndsWith("/"))
            {
                dir += "/";
            }
            else if (dir.Contains(@"\") && !dir.EndsWith(@"\"))
            {
                dir += @"\";
            }

            Console.WriteLine("The Path is : " + dir);

            return(dir);
        }