Beispiel #1
0
    public void CanAdminUsersModifyRightPermissions()
    {
        FileSystem   fs = new FileSystem();
        EditableFile fi = fs.createFile("hello.txt");

        fs.setPermissions(fi, 700);

        // Make an admin user
        fs.addUser("test", "pass", SECURITY_LEVEL.ADMIN);
        Assert.AreEqual(2, fs.allUsers.Count);
        fs.changeUser("test", "pass");

        // Can't read
        Assert.Throws(typeof(InvalidUserException), delegate {
            fi.getContents();
        });

        // Can't write
        Assert.Throws(typeof(InvalidUserException), delegate {
            fi.setContents("hello world!");
        });

        // Can't set root permissions
        Assert.Throws(typeof(InvalidUserException), delegate {
            fs.setPermissions(fi, 000);
        });

        // Can set admin and non-admin permissions
        fs.setPermissions(fi, 770);
        Assert.AreEqual(770, fi.getPermissions());
        fs.setPermissions(fi, 777);
        Assert.AreEqual(777, fi.getPermissions());

        // Can read + write now
        Assert.AreEqual("", fi.getContents());
        fi.setContents("hello!");
        Assert.AreEqual("hello!", fi.getContents());
    }
Beispiel #2
0
    public void CanRootUsersModifyRightPermissions()
    {
        FileSystem fs = new FileSystem();

        // We are root user, so we can change all permissions.
        // Try making something we can't read or write to.
        EditableFile fi = fs.createFile("hello.txt");

        fs.setPermissions(fi, 000);
        Assert.AreEqual(000, fi.getPermissions());

        // Can't read
        Assert.Throws(typeof(InvalidUserException), delegate {
            fi.getContents();
        });

        // Can't write
        Assert.Throws(typeof(InvalidUserException), delegate {
            fi.setContents("hello world!");
        });

        // Can set any permissions
        fs.setPermissions(fi, 700);
        Assert.AreEqual(700, fi.getPermissions());
        fs.setPermissions(fi, 770);
        Assert.AreEqual(770, fi.getPermissions());
        fs.setPermissions(fi, 777);
        Assert.AreEqual(777, fi.getPermissions());
        fs.setPermissions(fi, 700);
        Assert.AreEqual(700, fi.getPermissions());

        // Can read + write now
        Assert.AreEqual("", fi.getContents());
        fi.setContents("hello!");
        Assert.AreEqual("hello!", fi.getContents());
    }