예제 #1
0
            public SimpleSession(SecuritySystem security, FileSystem filesystem, ShellFactory shells, Terminal terminal, int userID)
            {
                this.security   = security;
                this.filesystem = filesystem;
                this.terminal   = terminal;
                this.userID     = userID;

                //get users home dir
                string homepath = security.UserHomeDirectory(userID);

                this.homeDir = (Directory)filesystem.Find(homepath);
                if (this.homeDir == null)
                {
                    throw new Exception("Failed to home users home directory: " + homepath);
                }

                //get shell
                string shellname = security.UserPreferredShell(userID);

                shell = shells.CreateShell(shellname, this);
                if (shell == null)
                {
                    throw new Exception("Failed to find user's preferred shell");
                }
                //TODO  get the shell from a factory
            }
예제 #2
0
        static void CreatePete(SecuritySystem security, FileSystem filesystem)
        {
            // add user steven if not already there
            int peteUserID = -1;

            try
            {
                peteUserID = security.UserID("steven");
            }
            catch (Exception)
            {
                peteUserID = security.AddUser("steven");
                security.SetPassword("steven", "foobar42");
            }

            // create some test files for user pete if needed
            if (filesystem.Find(security.UserHomeDirectory(peteUserID)) != null)
            {
                try
                {
                    Directory peteDir = (Directory)filesystem.Find(security.UserHomeDirectory(peteUserID));

                    Directory  subDir  = peteDir.CreateDirectory("subdir");
                    File       file1   = subDir.CreateFile("file1");
                    File       file2   = subDir.CreateFile("file2");
                    FileStream stream1 = file1.Open();
                    stream1.Write(0, ASCIIEncoding.ASCII.GetBytes("hello from file 1!"));
                    stream1.Close();
                    FileStream stream2 = file2.Open();
                    stream2.Write(0, ASCIIEncoding.ASCII.GetBytes("back at you from file 2!"));
                    stream2.Close();
                }
                catch (Exception)
                {
                    // Nothing here
                }
            }
        }
예제 #3
0
            public SimpleSession(SecuritySystem security, FileSystem filesystem, ShellFactory shells, Terminal terminal, int userID)
            {
                this.security   = security;
                this.filesystem = filesystem;
                this.shells     = shells;
                this.terminal   = terminal;
                this.userID     = userID;


                // get user's home directory
                homeDir = (Directory)filesystem.Find(security.UserHomeDirectory(userID));

                // identify user's shell
                shell = shells.CreateShell(security.UserPreferredShell(UserID), this);
            }