Пример #1
0
        public static bool HasCourseAccess(this IPrincipal User, string courseId, CourseAccessType accessType)
        {
            var coursesRepo = new CoursesRepo();

            return(coursesRepo.HasCourseAccess(User.Identity.GetUserId(), courseId, accessType));
        }
Пример #2
0
 public static string GetAuthorizationPolicyName(this CourseAccessType accessType)
 {
     return("CourseAccess." + Enum.GetName(typeof(CourseAccessType), accessType));
 }
Пример #3
0
        public static bool HasCourseAccess(this ApplicationUser User, string courseId, CourseAccessType accessType)
        {
            var coursesRepo = new CoursesRepo();

            return(coursesRepo.HasCourseAccess(User.Id, courseId, accessType));
        }
Пример #4
0
        public async Task <List <CourseAccess> > RevokeAccess(string courseId, string userId, CourseAccessType accessType)
        {
            var accesses = db.CourseAccesses.Where(a => a.CourseId == courseId && a.UserId == userId && a.AccessType == accessType).ToList();

            foreach (var access in accesses)
            {
                access.IsEnabled = false;
            }

            await db.SaveChangesAsync();

            return(accesses);
        }
Пример #5
0
 public bool HasCourseAccess(string userId, string courseId, CourseAccessType accessType)
 {
     return(db.CourseAccesses.Any(a => a.CourseId == courseId && a.UserId == userId && a.AccessType == accessType && a.IsEnabled));
 }
Пример #6
0
        public async Task <List <CourseAccess> > RevokeAccessAsync(string courseId, string userId, CourseAccessType accessType, string grantedById, string comment)
        {
            courseId = courseId.ToLower();
            var revoke = new CourseAccess
            {
                UserId      = userId,
                GrantTime   = DateTime.Now,
                GrantedById = grantedById,
                Comment     = comment,
                IsEnabled   = false,
                CourseId    = courseId,
                AccessType  = accessType
            };

            db.CourseAccesses.Add(revoke);

            await db.SaveChangesAsync();

            return(new List <CourseAccess> {
                revoke
            });
        }
Пример #7
0
 public async Task <bool> HasCourseAccessAsync(string userId, string courseId, CourseAccessType accessType)
 {
     return((await GetActualEnabledCourseAccessesAsync(courseId: courseId, userId: userId).ConfigureAwait(false))
            .Any(a => a.AccessType == accessType));
 }
Пример #8
0
 public bool HasCourseAccess(string userId, string courseId, CourseAccessType accessType)
 {
     return(GetActualEnabledCourseAccesses(courseId: courseId, userId: userId).Any(a => a.AccessType == accessType));
 }
Пример #9
0
        public async Task <CourseAccess> GrantAccessAsync(string courseId, string userId, CourseAccessType accessType, string grantedById, string comment)
        {
            courseId = courseId.ToLower();
            var currentAccess = new CourseAccess
            {
                CourseId    = courseId,
                UserId      = userId,
                AccessType  = accessType,
                GrantTime   = DateTime.Now,
                GrantedById = grantedById,
                IsEnabled   = true,
                Comment     = comment
            };

            db.CourseAccesses.Add(currentAccess);

            await db.SaveChangesAsync().ConfigureAwait(false);

            return(db.CourseAccesses.Include(a => a.GrantedBy).Single(a => a.Id == currentAccess.Id));
        }
Пример #10
0
 public CourseAccessAuthorizeAttribute(CourseAccessType accessType)
     : base(accessType.GetAuthorizationPolicyName())
 {
 }
Пример #11
0
 public CourseAccessRequirement(CourseAccessType courseAccessType)
 {
     CourseAccessType = courseAccessType;
 }
Пример #12
0
 public async Task <bool> HasCourseAccess(string userId, string courseId, CourseAccessType accessType)
 {
     return((await GetActualEnabledCourseAccesses(courseId: courseId, userId: userId))
            .Any(a => a.AccessType == accessType));
 }
Пример #13
0
        /* Course accesses */

        public async Task <CourseAccess> GrantAccessAsync(string courseId, string userId, CourseAccessType accessType, string grantedById)
        {
            var currentAccess = await db.CourseAccesses.FirstOrDefaultAsync(a => a.CourseId == courseId && a.UserId == userId && a.AccessType == accessType).ConfigureAwait(false);

            if (currentAccess == null)
            {
                currentAccess = new CourseAccess
                {
                    CourseId   = courseId,
                    UserId     = userId,
                    AccessType = accessType,
                };
                db.CourseAccesses.Add(currentAccess);
            }
            currentAccess.GrantedById = grantedById;
            currentAccess.GrantTime   = DateTime.Now;
            currentAccess.IsEnabled   = true;

            await db.SaveChangesAsync().ConfigureAwait(false);

            return(db.CourseAccesses.Include(a => a.GrantedBy).Single(a => a.Id == currentAccess.Id));
        }
Пример #14
0
 public Task <bool> HasCourseAccessAsync(string userId, string courseId, CourseAccessType accessType)
 {
     return(db.CourseAccesses.AnyAsync(a => a.CourseId == courseId && a.UserId == userId && a.AccessType == accessType && a.IsEnabled));
 }