protected UserContext LogOn(bool remember, IUserService userService, Func <IUserService, UserContext> logOnAction) { var context = logOnAction(userService); if (context != null) { ChalkableAuthentication.SignIn(context, false); if (context.DeveloperId.HasValue && !DemoUserService.IsDemoUser(context)) { DeveloperAuthentication.SignIn(context, remember); } } return(context); }
public ActionResult TestApps(string prefix) { var context = LogOn(false, userService => userService.DemoLogin(CoreRoles.TEACHER_ROLE.LoweredName, prefix)); if (context == null) { return(Json(new ChalkableException(string.Format(ChlkResources.USER_NOT_FOUND_IN_DEMO_SCHOOL, CoreRoles.TEACHER_ROLE.LoweredName, prefix)))); } var developer = SchoolLocator.ServiceLocatorMaster.DeveloperService.GetDeveloperByDictrict(Guid.Parse(prefix)); if (developer != null) { var devContext = SchoolLocator.ServiceLocatorMaster.UserService.DeveloperTestLogin(developer); if (devContext != null) { DeveloperAuthentication.SignIn(devContext, true); } return(Redirect <HomeController>(c => c.Teacher())); } throw new ChalkableSecurityException(ChlkResources.ERR_DEMO_SCHOOL_INCORRECT_ROLE); }