def user_sign_up(email, first_name, last_name, gender, dob, qatar_id, mobile_no, password): if not is_signup_enabled(): frappe.throw(_('Sign Up is disabled'), title='Not Allowed') user = frappe.db.get("User", {"email": email}) if user: if user.disabled: return 0, _("Registered but disabled") else: return 0, _("Already Registered") else: if frappe.db.sql("""select count(*) from tabUser where HOUR(TIMEDIFF(CURRENT_TIMESTAMP, TIMESTAMP(modified)))=1""")[0][0] > 300: frappe.respond_as_web_page( _('Temporarily Disabled'), _('Too many users signed up recently, so the registration is disabled. Please try back in an hour' ), http_status_code=429) from frappe.utils import random_string user = frappe.get_doc({ "doctype": "User", "email": email, "first_name": escape_html(first_name), "last_name": escape_html(last_name), "gender": escape_html(gender), "birth_date": dob, "qatar_id": qatar_id, # "tnc":tnc, "mobile_no": mobile_no, "enabled": 1, "new_password": password, "user_type": "Website User" }) user.flags.ignore_permissions = True user.flags.ignore_password_policy = True user.insert() # set default signup role as per Portal Settings default_role = frappe.db.get_value("Portal Settings", None, "default_role") if default_role: user.add_roles(default_role) user.save() return 1, _("success")
def get_context(context): """generate rss feed""" host = get_request_site_address() blog_list = frappe.db.sql("""\ select route as name, published_on, modified, title, content from `tabBlog Post` where ifnull(published,0)=1 order by published_on desc limit 20""", as_dict=1) for blog in blog_list: blog_page = cstr(urllib.quote(blog.route.encode("utf-8"))) blog.link = urllib.basejoin(host, blog_page) blog.content = escape_html(blog.content or "") if blog_list: modified = max((blog['modified'] for blog in blog_list)) else: modified = now() blog_settings = frappe.get_doc('Blog Settings', 'Blog Settings') context = { 'title': blog_settings.blog_title or "Blog", 'description': blog_settings.blog_introduction or "", 'modified': modified, 'items': blog_list, 'link': host + '/blog' } # print context return context
def get_context(context): """generate rss feed""" host = get_request_site_address() blog_list = frappe.db.sql("""\ select page_name as name, published_on, modified, title, content from `tabBlog Post` where ifnull(published,0)=1 order by published_on desc limit 20""", as_dict=1) for blog in blog_list: blog_page = cstr(urllib.quote(blog.name.encode("utf-8"))) + ".html" blog.link = urllib.basejoin(host, blog_page) blog.content = escape_html(blog.content or "") if blog_list: modified = max((blog['modified'] for blog in blog_list)) else: modified = now() blog_settings = frappe.get_doc('Blog Settings', 'Blog Settings') context = { 'title': blog_settings.blog_title or "Blog", 'description': blog_settings.blog_introduction or "", 'modified': modified, 'items': blog_list, 'link': host + '/blog' } # print context return context
def render_template(template, context, is_path=None, safe_render=True): '''Render a template using Jinja :param template: path or HTML containing the jinja template :param context: dict of properties to pass to the template :param is_path: (optional) assert that the `template` parameter is a path :param safe_render: (optional) prevent server side scripting via jinja templating ''' from frappe import get_traceback, throw from frappe.utils import escape_html from jinja2 import TemplateError if not template: return "" # if it ends with .html then its a freaking path, not html if (is_path or template.startswith("templates/") or (template.endswith('.html') and '\n' not in template)): return get_jenv().get_template(template).render(context) else: if safe_render and ".__" in template: throw("Illegal template") try: return get_jenv().from_string(template).render(context) except TemplateError: throw(title="Jinja Template Error", msg="<pre>{template}</pre><pre>{tb}</pre>".format( template=template, tb=escape_html(get_traceback())))
def get_context(context): """generate rss feed""" host = get_request_site_address() blog_list = frappe.db.sql( """\ select route as name, published_on, modified, title, content from `tabBlog Post` where ifnull(published,0)=1 order by published_on desc limit 20""", as_dict=1, ) for blog in blog_list: blog_page = cstr(quote(blog.name.encode("utf-8"))) blog.link = urljoin(host, blog_page) blog.content = escape_html(blog.content or "") if blog_list: modified = max((blog["modified"] for blog in blog_list)) else: modified = now() blog_settings = frappe.get_doc("Blog Settings", "Blog Settings") context = { "title": blog_settings.blog_title or "Blog", "description": blog_settings.blog_introduction or "", "modified": modified, "items": blog_list, "link": host + "/blog", } # print context return context
def sign_up(email, full_name, redirect_to, aadhar_card, mobile_number, location, account_name, account_number, branch, ifsc_code): if not is_signup_enabled(): frappe.throw(_('Sign Up is disabled'), title='Not Allowed') user = frappe.db.get("User", {"email": email}) if user: if user.disabled: return 0, _("Registered but disabled") else: return 0, _("Already Registered") else: if frappe.db.sql("""select count(*) from tabUser where HOUR(TIMEDIFF(CURRENT_TIMESTAMP, TIMESTAMP(modified)))=1""")[0][0] > 300: frappe.respond_as_web_page( _('Temporarily Disabled'), _('Too many users signed up recently, so the registration is disabled. Please try back in an hour' ), http_status_code=429) from frappe.utils import random_string user = frappe.get_doc({ "doctype": "User", "email": email, "first_name": escape_html(full_name), "enabled": 1, "new_password": "******", "user_type": "Website User", 'aadhar_card': aadhar_card, 'account_name': account_name, 'account_number': account_number, 'branch': branch, 'mobile_no': mobile_number, 'location': location, 'ifsc_code': ifsc_code }) user.flags.ignore_permissions = True user.flags.ignore_password_policy = True user.insert() # set default signup role as per Portal Settings default_role = frappe.db.get_value("Portal Settings", None, "default_role") if default_role: user.add_roles(default_role) if redirect_to: frappe.cache().hset('redirect_after_login', user.name, redirect_to) if user.flags.email_sent: return 1, _("Please check your email for verification") else: return 2, _("Please ask your administrator to verify your sign-up")
def sign_up(email, full_name, redirect_to): if is_signup_disabled(): frappe.throw(_("Sign Up is disabled"), title=_("Not Allowed")) user = frappe.db.get("User", {"email": email}) if user: if user.enabled: return 0, _("Already Registered") else: return 0, _("Registered but disabled") else: if frappe.db.get_creation_count("User", 60) > 300: frappe.respond_as_web_page( _("Temporarily Disabled"), _( "Too many users signed up recently, so the registration is disabled. Please try back in an hour" ), http_status_code=429, ) from frappe.utils import random_string user = frappe.get_doc( { "doctype": "User", "email": email, "first_name": escape_html(full_name), "enabled": 1, "new_password": random_string(10), "user_type": "Website User", } ) user.flags.ignore_permissions = True user.flags.ignore_password_policy = True user.insert() # set default signup role as per Portal Settings default_role = frappe.db.get_value("Portal Settings", None, "default_role") if default_role: user.add_roles(default_role) if redirect_to: frappe.cache().hset("redirect_after_login", user.name, redirect_to) if user.flags.email_sent: return 1, _("Please check your email for verification") else: return 2, _("Please ask your administrator to verify your sign-up")
host = get_request_site_address() blog_list = frappe.db.sql("""\ select route as name, published_on, modified, title, content from `tabBlog Post` where ifnull(published,0)=1 order by published_on desc limit 20""", as_dict=1) for blog in blog_list: blog_page = cstr(quote(blog.name.encode("utf-8"))) <<<<<<< HEAD blog.link = urllib.basejoin(host, blog_page) ======= blog.link = urljoin(host, blog_page) >>>>>>> 176d241496ede1357a309fa44a037b757a252581 blog.content = escape_html(blog.content or "") if blog_list: modified = max((blog['modified'] for blog in blog_list)) else: modified = now() blog_settings = frappe.get_doc('Blog Settings', 'Blog Settings') context = { 'title': blog_settings.blog_title or "Blog", 'description': blog_settings.blog_introduction or "", 'modified': modified, 'items': blog_list, 'link': host + '/blog' }