public static bool HasAccessFor(this IPrincipal principal, string courseId, CourseRole minAccessLevel) { if (principal.IsSystemAdministrator()) { return(true); } var courseRole = principal.GetAllRoles().FirstOrDefault(t => string.Equals(t.Item1, courseId, StringComparison.OrdinalIgnoreCase)); return(courseRole?.Item2 <= minAccessLevel); }
public static bool HasAccess(this IPrincipal principal, CourseRole minAccessLevel) { if (principal.IsSystemAdministrator()) { return(true); } var roles = principal.GetAllRoles().Select(t => t.Item2).ToList(); if (!roles.Any()) { return(false); } return(roles.Min() <= minAccessLevel); }
public static bool HasAccessFor(this IPrincipal principal, string courseId, CourseRole minAccessLevel) { if (principal.IsSystemAdministrator()) { return(true); } var courseRole = principal.GetAllRoles().FirstOrDefault(t => t.Item1 == courseId); if (courseRole == null) { return(false); } return(courseRole.Item2 <= minAccessLevel); }
public static IEnumerable <string> GetCoursesIdFor(this IPrincipal principal, CourseRole role) { return(principal.GetAllRoles().Where(t => t.Item2 <= role).Select(t => t.Item1)); }
public static CourseRole?GetCourseRole(this IPrincipal principal, string courseId) { return(principal.GetAllRoles().FirstOrDefault(t => string.Equals(t.Item1, courseId, StringComparison.OrdinalIgnoreCase))?.Item2); }