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); }
public ActionResult LogOnIntoDemo(string rolename, string prefix) { if (string.IsNullOrEmpty(prefix)) { Json(new ChalkableException(ChlkResources.ERR_DEMO_SCHOOL_INVALID_PREFIX)); } if (rolename.ToLower() == CoreRoles.DEVELOPER_ROLE.LoweredName) { var devContext = DeveloperAuthentication.GetUser(); if (devContext != null) { ChalkableAuthentication.SignIn(devContext, true); return(Redirect <HomeController>(c => c.Developer(null, null))); } throw new UnassignedUserException(); } var context = LogOn(false, userService => userService.DemoLogin(rolename, prefix)); if (context == null) { return(Json(new ChalkableException(string.Format(ChlkResources.USER_NOT_FOUND_IN_DEMO_SCHOOL, rolename, prefix)))); } if (rolename.ToLower() == CoreRoles.DISTRICT_ADMIN_ROLE.LoweredName) { return(Redirect <HomeController>(c => c.DistrictAdmin())); } if (rolename.ToLower() == CoreRoles.TEACHER_ROLE.LoweredName) { return(Redirect <HomeController>(c => c.Teacher())); } if (rolename.ToLower() == CoreRoles.STUDENT_ROLE.LoweredName) { return(Redirect <HomeController>(c => c.Student())); } throw new ChalkableSecurityException(ChlkResources.ERR_DEMO_SCHOOL_INCORRECT_ROLE); }
public ActionResult LogOutWithRedirect() { ChalkableAuthentication.SignOut(); DeveloperAuthentication.SignOut(); return(Redirect <HomeController>(x => x.Index())); }
public ActionResult LogOut() { ChalkableAuthentication.SignOut(); DeveloperAuthentication.SignOut(); return(Json(new { success = true, data = new { success = true } }, JsonRequestBehavior.AllowGet)); }