def _register_student(self, data): """ Registers the student in UNCode and sends a verification email to the user. If the user already exists, nothing happens. :param data: Dict containing the user data :return: True if succeeded the register. If user already exists returns False. """ success = True existing_user = self.database.users.find_one( {"$or": [{"username": data["username"]}, {"email": data["email"]}]}) if existing_user is not None: success = False else: passwd_hash = hashlib.sha512(data["passwd"].encode("utf-8")).hexdigest() activate_hash = hashlib.sha512(str(random.getrandbits(256)).encode("utf-8")).hexdigest() self.database.users.insert({"username": data["username"], "realname": data["realname"], "email": data["email"], "password": passwd_hash, "activate": activate_hash, "bindings": {}, "language": self.user_manager._session.get("language", "en")}) try: activate_account_link = web.ctx.home + "/register?activate=" + activate_hash email_template = read_file(_static_folder_path, "email_template.txt") web.sendmail(web.config.smtp_sendername, data["email"], "Welcome on UNCode", email_template.format(activate_account_link)) except: pass return success
def init(plugin_manager, course_factory, client, config): plugin_manager.add_page(r'/UNCode/static/(.*)', create_static_resource_page(_static_folder_path)) use_minified = config.get("use_minified", True) if use_minified: plugin_manager.add_hook("javascript_footer", lambda: "/UNCode/static/js/UNCode.min.js") plugin_manager.add_hook("css", lambda: "/UNCode/static/css/UNCode.min.css") else: plugin_manager.add_hook("javascript_footer", lambda: "/UNCode/static/js/uncode.js") plugin_manager.add_hook("javascript_footer", lambda: "/UNCode/static/js/task_files_tab.js") plugin_manager.add_hook("css", lambda: "/UNCode/static/css/uncode.css") used_grading_environments = config.get("used_grading_environments", []) set_used_grading_environments(used_grading_environments) used_subproblem_types = config.get("used_subproblem_types", []) set_used_subproblem_types(used_subproblem_types) plugin_manager.add_page("/api/getUsedGradingEnvironments/", UsedGradingEnvironments) plugin_manager.add_page("/api/getUsedSubproblemTypes/", UsedSubproblemTypes) plugin_manager.add_hook( "additional_body_html", lambda: "<p class='hidden' id='default_task_context'>" + read_file( _static_folder_path, _CONTEXT_TASK_TEMPLATE_FILE) + "</p>") plugin_manager.add_hook( "additional_body_html", lambda: read_file(_static_folder_path, _TASK_CONTEXT_HELP_MODAL_FILE)) plugin_manager.add_hook( "additional_body_html", lambda: read_file( _static_folder_path, _TASK_FILES_UPLOAD_MULTIPLE_MODAL)) plugin_manager.add_hook( "additional_body_html", lambda: read_file(_static_folder_path, _TASK_RESULT_LEGEND_MODAL_FILE)) plugin_manager.add_hook( "additional_body_html", lambda: read_file(_static_folder_path, _DELETE_ALL_FILES_MODAL_FILE))
def init(plugin_manager, course_factory, client, config): plugin_manager.add_page(r'/UNCode/static/(.*)', create_static_resource_page(_static_folder_path)) use_minified = config.get("use_minified", True) if use_minified: plugin_manager.add_hook("javascript_footer", lambda: "/UNCode/static/js/UNCode.min.js") plugin_manager.add_hook("css", lambda: "/UNCode/static/css/UNCode.min.css") else: plugin_manager.add_hook("javascript_footer", lambda: "/UNCode/static/js/uncode.js") plugin_manager.add_hook("javascript_footer", lambda: "/UNCode/static/js/task_files_upload_multiple.js") plugin_manager.add_hook("css", lambda: "/UNCode/static/css/uncode.css") plugin_manager.add_hook("additional_body_html", lambda: "<p class='hidden' id='default_task_context'>" + read_file(_static_folder_path, _CONTEXT_TASK_TEMPLATE_FILE) + "</p>") plugin_manager.add_hook("additional_body_html", lambda: read_file(_static_folder_path, _TASK_CONTEXT_HELP_MODAL_HTML_FILE)) plugin_manager.add_hook("additional_body_html", lambda: read_file(_static_folder_path, _TASK_FILES_UPLOAD_MULTIPLE_MODAL)) plugin_manager.add_hook("additional_body_html", lambda: read_file(_static_folder_path, _TASK_RESULT_LEGEND_MODAL_HTML_FILE))
def init(plugin_manager, course_factory, client, config): plugin_manager.add_page(r'/UNCode/static/(.*)', create_static_resource_page(_static_folder_path)) use_minified = config.get("use_minified", True) if use_minified: plugin_manager.add_hook("javascript_footer", lambda: "/UNCode/static/js/UNCode.min.js") plugin_manager.add_hook("css", lambda: "/UNCode/static/css/UNCode.min.css") else: plugin_manager.add_hook("javascript_footer", lambda: "/UNCode/static/js/uncode.js") plugin_manager.add_hook("javascript_footer", lambda: "/UNCode/static/js/task_files_tab.js") plugin_manager.add_hook("css", lambda: "/UNCode/static/css/uncode.css") used_grading_environments = config.get("used_grading_environments", []) set_used_grading_environments(used_grading_environments) used_subproblem_types = config.get("used_subproblem_types", []) set_used_subproblem_types(used_subproblem_types) plugin_manager.add_page("/api/getUsedGradingEnvironments/", UsedGradingEnvironments) plugin_manager.add_page("/api/getUsedSubproblemTypes/", UsedSubproblemTypes) renderer = plugin_manager._app.template_helper.get_custom_renderer( 'frontend/plugins/UNCode/static', False) plugin_manager.add_hook( "additional_body_html", lambda: "<p class='hidden' id='default_task_context'>" + read_file( _static_folder_path, _CONTEXT_TASK_TEMPLATE_FILE) + "</p>") plugin_manager.add_hook("additional_body_html", lambda: str(renderer.task_context_help_modal())) plugin_manager.add_hook( "additional_body_html", lambda: str(renderer.task_files_upload_multiple_modal())) plugin_manager.add_hook("additional_body_html", lambda: str(renderer.task_result_legend_modal())) plugin_manager.add_hook( "additional_body_html", lambda: str(renderer.delete_all_files_confirm_modal()))
def init(plugin_manager, course_factory, client, config): plugin_manager.add_page(r'/register_students/static/(.*)', create_static_resource_page(_static_folder_path)) plugin_manager.add_page("/api/addStudents/", AddCourseStudentsCsvFile) use_minified = config.get("use_minified", True) if use_minified: plugin_manager.add_hook( "javascript_footer", lambda: "/register_students/static/js/register.min.js") plugin_manager.add_hook( "css", lambda: "/register_students/static/css/register_students.min.css") else: plugin_manager.add_hook( "javascript_footer", lambda: "/register_students/static/js/register.js") plugin_manager.add_hook( "css", lambda: "/register_students/static/css/register_students.css") plugin_manager.add_hook( "additional_body_html", lambda: read_file( _static_folder_path, _REGISTER_STUDENTS_MODAL_HTML_FILE))