Esempio n. 1
0
        public async Task <ActionResult> ToggleRole(string courseId, string userId, CourseRole role)
        {
            var comment       = Request.Form["comment"];
            var currentUserId = User.Identity.GetUserId();
            var isCourseAdmin = User.HasAccessFor(courseId, CourseRole.CourseAdmin);

            if ((userManager.FindById(userId) == null || userId == currentUserId) && (!isCourseAdmin || role == CourseRole.CourseAdmin) && !User.IsSystemAdministrator())
            {
                return(Json(new { status = "error", message = "Вы не можете изменить эту роль у самих себя." }));
            }

            var canAddInstructors = coursesRepo.HasCourseAccess(currentUserId, courseId, CourseAccessType.AddAndRemoveInstructors);

            if (!isCourseAdmin && !canAddInstructors)
            {
                return(Json(new { status = "error", message = "У вас нет прав назначать преподавателей или тестеров. Это могут делать только администраторы курса и преподаватели со специальными правами." }));
            }

            if (!isCourseAdmin && role == CourseRole.CourseAdmin)
            {
                return(Json(new { status = "error", message = "Вы не можете назначать администраторов курса. Это могут делать только другие администраторы курса." }));
            }

            var enabledRole = await userRolesRepo.ToggleRole(courseId, userId, role, currentUserId, comment);

            if (enabledRole && (role == CourseRole.Instructor || role == CourseRole.CourseAdmin))
            {
                await NotifyAboutNewInstructor(courseId, userId, currentUserId);
            }

            return(Json(new { status = "ok", role = role.ToString() }));
        }
Esempio n. 2
0
        public async Task <ActionResult> ToggleRole(string courseId, string userId, CourseRole role)
        {
            if (userManager.FindById(userId) == null || userId == User.Identity.GetUserId())
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            await userRolesRepo.ToggleRole(courseId, userId, role);

            return(Content(role.ToString()));
        }
Esempio n. 3
0
		public async Task<ActionResult> ToggleRole(string courseId, string userId, CourseRole role)
		{
			if (userManager.FindById(userId) == null || userId == User.Identity.GetUserId())
				return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
			await userRolesRepo.ToggleRole(courseId, userId, role);
			return Content(role.ToString());
		}