/// <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; }
/// <summary> /// Create a course role /// </summary> public CourseRole CreateRole(int courseID, string name, bool isstaff) { //Check permission Authorize(courseID, Permission.COURSE, "createrole", courseID, null); CourseRole role = new CourseRole(); role.CourseID = courseID; role.Name = name; role.Staff = isstaff; //Create role m_dp.CreateCourseRole(role); return role; }
/// <summary> /// Deny a permission to an entity /// </summary> public bool Deny(CourseRole role, string etype, string perm, int entityID, int courseID) { Authorize(courseID, etype, "updateperms", entityID, null); return m_dp.DenyPermission(role.PrincipalID, perm, etype, entityID); }