Esempio n. 1
0
        /// <summary>
        /// Set permissions for a given file
        /// </summary>
        public void SetPermissions(CFile file, CFilePermission perm)
        {
            CFilePermission.FilePermissionList perms = new CFilePermission.FilePermissionList();
            perms.Add(perm);

            SetPermissions(file, perms);
        }
Esempio n. 2
0
        private void cmdUpdate_Click(object sender, System.EventArgs e)
        {
            CFilePermission.FilePermissionList perms = new CFilePermission.FilePermissionList();
            int principalID = Convert.ToInt32(ddlPrins.SelectedItem.Value);

            perms.Add(new CFilePermission(principalID, FileAction.READ, chkRead.Checked));
            perms.Add(new CFilePermission(principalID, FileAction.WRITE, chkWrite.Checked));
            perms.Add(new CFilePermission(principalID, FileAction.DELETE, chkDelete.Checked));

            FileSystem fs = new FileSystem(Globals.CurrentIdentity);

            try {
                fs.SetPermissions(fs.GetFile(FileID), perms);
            } catch (CustomException er) {
                PageError(er.Message);
            }

            BindBoxes();
        }
Esempio n. 3
0
        /// <summary>
        /// Get permissions for a given file
        /// </summary>
        public CFilePermission.FilePermissionList GetPermissions(CFile file, int principalID)
        {
            //Check perms
            CFilePermission.FilePermissionList perms = new CFilePermission.FilePermissionList();
            if (Authorize(principalID, file, FileAction.READ, null))
            {
                perms.Add(new CFilePermission(principalID, FileAction.READ, true));
            }
            if (Authorize(principalID, file, FileAction.WRITE, null))
            {
                perms.Add(new CFilePermission(principalID, FileAction.WRITE, true));
            }
            if (Authorize(principalID, file, FileAction.DELETE, null))
            {
                perms.Add(new CFilePermission(principalID, FileAction.DELETE, true));
            }

            return(perms);
        }
Esempio n. 4
0
        /// <summary>
        /// Create an assignment
        /// </summary>
        public int Create(int courseID, string creator, string desc, DateTime duedate)
        {
            //Check perm
            Authorize(courseID, Permission.COURSE, "createasst", courseID, null);

            Assignment asst = new Assignment();

            asst.CourseID    = courseID;
            asst.Creator     = creator;
            asst.Description = desc;
            asst.DueDate     = duedate;
            asst.Format      = Assignment.DEFAULT_FORMAT;

            //Create
            m_dp.CreateAssignment(asst);

            //Setup default permissions
            CreatePermissions(asst.ID, courseID, Permission.ASSIGNMENT);

            //Setup default file permissions
            Courses courseda = new Courses(m_ident);

            CFilePermission.FilePermissionList perms = new CFilePermission.FilePermissionList();
            CourseRole.CourseRoleList          staff = courseda.GetTypedRoles(courseID, true, null);
            CourseRole.CourseRoleList          stu   = courseda.GetTypedRoles(courseID, false, null);
            foreach (CourseRole role in staff)
            {
                perms.AddRange(CFilePermission.CreateFullAccess(role.PrincipalID));
            }

            foreach (CourseRole role in stu)
            {
                perms.Add(new CFilePermission(role.PrincipalID, FileAction.READ, true));
            }

            //Create content area
            FileSystem fs   = new FileSystem(m_ident);
            CFile      cdir = fs.CreateDirectory(@"c:\acontent\" + asst.ID, false, perms, false);

            asst.ContentID = cdir.ID;
            Update(asst);

            //Log
            Log("Created assignment: " + desc, asst.ID);

            return(asst.ID);
        }
        private void cmdUpdate_Click(object sender, System.EventArgs e)
        {
            CFilePermission.FilePermissionList perms = new CFilePermission.FilePermissionList();
            int principalID = Convert.ToInt32(ddlPrins.SelectedItem.Value);
            perms.Add(new CFilePermission(principalID, FileAction.READ, chkRead.Checked));
            perms.Add(new CFilePermission(principalID, FileAction.WRITE, chkWrite.Checked));
            perms.Add(new CFilePermission(principalID, FileAction.DELETE, chkDelete.Checked));

            FileSystem fs = new FileSystem(Globals.CurrentIdentity);
            try {
                fs.SetPermissions(fs.GetFile(FileID), perms);
            } catch (CustomException er) {
                PageError(er.Message);
            }

            BindBoxes();
        }
Esempio n. 6
0
        /// <summary>
        /// Create the course
        /// </summary>
        public bool Create(string name, string number, string instructor)
        {
            Course course = new Course();

            //TODO: Verify these values
            course.Name = name;
            course.Number = number;

            //Create course
            m_dp.CreateCourse(course);

            //Get all data
            course = GetInfo(course.ID);

            //Define default roles
            CourseRole role = new CourseRole();
            role.CourseID = course.ID;
            role.Name = "Student"; role.Staff = false;
            m_dp.CreateCourseRole(role);
            role.Name = "TA"; role.Staff = true;
            m_dp.CreateCourseRole(role);
            role.Name = "Instructor"; role.Staff = true;
            m_dp.CreateCourseRole(role);

            //Assign filesys permissions
            CourseRole student = GetRoleInfo("Student", course.ID);
            CourseRole ta = GetRoleInfo("TA", course.ID);
            CourseRole ins = GetRoleInfo("Instructor", course.ID);
            CFilePermission.FilePermissionList full = new CFilePermission.FilePermissionList();
            full.AddRange(CFilePermission.CreateFullAccess(ta.PrincipalID));
            full.AddRange(CFilePermission.CreateFullAccess(ins.PrincipalID));
            full.Add(new CFilePermission(student.PrincipalID, FileAction.READ, true));

            //Create content area
            FileSystem fs = new FileSystem(m_ident);
            string cpath = @"c:\ccontent\" + course.ID;
            CFile cdir = fs.CreateDirectory(cpath, false, full);

            course.ContentID = cdir.ID;
            Update(course);
            CFile ldir = fs.CreateDirectory(cpath + @"\" + "lnotes", false, null);
            ldir.Alias = "Lecture Notes"; fs.UpdateFileInfo(ldir, false);

            //Put operator in course temporarily
            m_dp.CreateCourseMember(m_ident.Name, course.ID, "Instructor", null);

            //Assign course perms
            CreatePermissions(course.ID, course.ID, Permission.COURSE);

            if (instructor != m_ident.Name) {
                //Add instructor
                AddUser(instructor, "Instructor", course.ID, null);

                //Take operator out
                RemoveUser(m_ident.Name, course.ID);
            }

            return true;
        }
Esempio n. 7
0
        /// <summary>
        /// Create an assignment
        /// </summary>
        public int Create(int courseID, string creator, string desc, DateTime duedate)
        {
            //Check perm
            Authorize(courseID, Permission.COURSE, "createasst", courseID, null);

            Assignment asst = new Assignment();
            asst.CourseID = courseID;
            asst.Creator = creator;
            asst.Description = desc;
            asst.DueDate = duedate;
            asst.Format = Assignment.DEFAULT_FORMAT;

            //Create
            m_dp.CreateAssignment(asst);

            //Setup default permissions
            CreatePermissions(asst.ID, courseID, Permission.ASSIGNMENT);

            //Setup default file permissions
            Courses courseda = new Courses(m_ident);
            CFilePermission.FilePermissionList perms = new CFilePermission.FilePermissionList();
            CourseRole.CourseRoleList staff = courseda.GetTypedRoles(courseID, true, null);
            CourseRole.CourseRoleList stu = courseda.GetTypedRoles(courseID, false, null);
            foreach (CourseRole role in staff)
                perms.AddRange(CFilePermission.CreateFullAccess(role.PrincipalID));

            foreach (CourseRole role in stu)
                perms.Add(new CFilePermission(role.PrincipalID, FileAction.READ, true));

            //Create content area
            FileSystem fs = new FileSystem(m_ident);
            CFile cdir = fs.CreateDirectory(@"c:\acontent\" + asst.ID, false, perms, false);
            asst.ContentID = cdir.ID;
            Update(asst);

            //Log
            Log("Created assignment: " + desc, asst.ID);

            return asst.ID;
        }
Esempio n. 8
0
        /// <summary>
        /// Create the course
        /// </summary>
        public bool Create(string name, string number, string instructor)
        {
            Course course = new Course();

            //TODO: Verify these values
            course.Name   = name;
            course.Number = number;

            //Create course
            m_dp.CreateCourse(course);

            //Get all data
            course = GetInfo(course.ID);

            //Define default roles
            CourseRole role = new CourseRole();

            role.CourseID = course.ID;
            role.Name     = "Student"; role.Staff = false;
            m_dp.CreateCourseRole(role);
            role.Name = "TA"; role.Staff = true;
            m_dp.CreateCourseRole(role);
            role.Name = "Instructor"; role.Staff = true;
            m_dp.CreateCourseRole(role);

            //Assign filesys permissions
            CourseRole student = GetRoleInfo("Student", course.ID);
            CourseRole ta      = GetRoleInfo("TA", course.ID);
            CourseRole ins     = GetRoleInfo("Instructor", course.ID);

            CFilePermission.FilePermissionList full = new CFilePermission.FilePermissionList();
            full.AddRange(CFilePermission.CreateFullAccess(ta.PrincipalID));
            full.AddRange(CFilePermission.CreateFullAccess(ins.PrincipalID));
            full.Add(new CFilePermission(student.PrincipalID, FileAction.READ, true));

            //Create content area
            FileSystem fs    = new FileSystem(m_ident);
            string     cpath = @"c:\ccontent\" + course.ID;
            CFile      cdir  = fs.CreateDirectory(cpath, false, full);

            course.ContentID = cdir.ID;
            Update(course);
            CFile ldir = fs.CreateDirectory(cpath + @"\" + "lnotes", false, null);

            ldir.Alias = "Lecture Notes"; fs.UpdateFileInfo(ldir, false);

            //Put operator in course temporarily
            m_dp.CreateCourseMember(m_ident.Name, course.ID, "Instructor", null);

            //Assign course perms
            CreatePermissions(course.ID, course.ID, Permission.COURSE);

            if (instructor != m_ident.Name)
            {
                //Add instructor
                AddUser(instructor, "Instructor", course.ID, null);

                //Take operator out
                RemoveUser(m_ident.Name, course.ID);
            }

            return(true);
        }
Esempio n. 9
0
        /// <summary>
        /// Recreate the file permissions table
        /// </summary>
        public void RecoverBaseFilePermissions()
        {
            //Get all submissions
            Components.Submission.SubmissionList subs = new Submissions(m_ident).GetAll();
            Assignments asstda   = new Assignments(m_ident);
            Courses     courseda = new Courses(m_ident);

            CFilePermission.FilePermissionList full;

            foreach (Components.Submission sub in subs)
            {
                CFile subdir   = GetFile(sub.LocationID);
                int   courseID = asstda.GetInfo(sub.AsstID).CourseID;

                //Give staff access
                CourseRole.CourseRoleList staff = courseda.GetTypedRoles(courseID, true, null);
                foreach (CourseRole role in staff)
                {
                    full = CFilePermission.CreateFullAccess(role.PrincipalID);
                    SetPermissionsInt(subdir, full);
                }

                //Give sub principal access
                full = CFilePermission.CreateOprFullAccess(sub.PrincipalID);
                SetPermissionsInt(subdir, full);
            }

            //Do content
            Course.CourseList courses = courseda.GetAll();
            foreach (Course course in courses)
            {
                CFile cont = GetFile(course.ContentID);

                //Give staff access
                CourseRole.CourseRoleList staff = courseda.GetTypedRoles(course.ID, true, null);
                foreach (CourseRole role in staff)
                {
                    full = CFilePermission.CreateFullAccess(role.PrincipalID);
                    SetPermissionsInt(cont, full);
                }
                //Give students read access
                CourseRole.CourseRoleList stu = courseda.GetTypedRoles(course.ID, false, null);
                foreach (CourseRole role in stu)
                {
                    full = new CFilePermission.FilePermissionList();
                    full.Add(new CFilePermission(role.PrincipalID, FileAction.READ, true));
                    SetPermissionsInt(cont, full);
                }

                //Give staff  and stuaccess to asst content
                Assignment.AssignmentList assts = courseda.GetAssignments(course.ID);
                foreach (Assignment asst in assts)
                {
                    CFile acont = GetFile(asst.ContentID);
                    foreach (CourseRole role in staff)
                    {
                        full = CFilePermission.CreateFullAccess(role.PrincipalID);
                        SetPermissionsInt(acont, full);
                    }
                    foreach (CourseRole role in stu)
                    {
                        full = new CFilePermission.FilePermissionList();
                        full.Add(new CFilePermission(role.PrincipalID, FileAction.READ, true));
                        SetPermissionsInt(acont, full);
                    }
                }
            }
        }