def test_decode(self): T = languages.TranslatorFactory(self.langpath, self.http_accept_language) messages = Messages(T) messages.update({'email_sent': 'Email sent', 'test': "ä"}) self.assertEqual(to_unicode(messages.email_sent, 'utf-8'), 'Email sent')
def __init__(self, db): self.db = db settings = self.settings = Storage() settings.extra_fields = {} settings.oncomment = None settings.select_fields = [] settings.select_attributes = {} settings.headers = [] settings.content = lambda row: row settings.view_all_content = lambda total: A( current.T('View all %s comments') % total, _href='#', _class='plugin_comment_cascade_view_all') settings.footers = [ TEXTAREA('', _placeholder=current.T('Write a comment..'), _rows=1, _class='plugin_comment_cascade_create') ] settings.tooltip = LABEL('X', _class='plugin_comment_cascade_delete') settings.limit = 2 settings.table_comment_name = 'comment_cascade_comment' settings.table_comment = None messages = self.messages = Messages(current.T) messages.record_created = 'Record Created' messages.record_deleted = 'Record Deleted'
def __init__(self, db): self.db = db settings = self.settings = Storage() settings.onmessage = None settings.extra_fields = {} settings.select_fields = [] settings.select_attributes = {} settings.table_message_name = 'messaging_message' settings.table_message = None settings.table_thread_name = 'messaging_thread' settings.table_thread = None settings.status_read = 'read' settings.status_unread = 'unread' messages = self.messages = Messages(current.T) messages.read = 'Already read' messages.unread = 'Unread' messages.label_status = 'Status' messages.label_body_text = 'Body text' messages.label_receiver = 'Receiver'
def __init__(self, page, paginate, records, **attributes): SPAN.__init__(self, **attributes) self.attributes['_class'] = 'paginate_info' self.page, self.paginate, self.records = (page, paginate, records) self.messages = Messages(current.T) self.messages.display_without_span = 'Display: <b>%(total)s</b>' self.messages.display_with_span = 'Display: <b>%(start)s - %(end)s</b> of <b>%(total)s</b>'
def __init__(self, paginates=(10, 25, 50, 100), paginate_var='paginate', page_var='page', anchor=None, style='text', **attributes): SPAN.__init__(self, **attributes) self.attributes['_class'] = 'paginate_selector' self.paginates, self.paginate_var, self.page_var, self.anchor, self.style = ( paginates, paginate_var, page_var, anchor, style ) self.paginate = int(current.request.get_vars.get(self.paginate_var, paginates[0])) self.messages = Messages(current.T) self.messages.paginate = 'Paginate: ' self.messages.option = ''
def __init__(self, paginate=10, records=100, renderstyle=False, page_var='page', anchor="", extra_vars={}, **attributes): DIV.__init__(self, **attributes) self.attributes['_class'] = 'paginator' self.paginate, self.records, self.page_var, self.anchor, self.extra_vars = ( paginate, records, page_var, anchor, extra_vars ) self.page = int(current.request.get_vars.get(self.page_var) or 1) self.messages = Messages(current.T) self.messages.prev = 'Prev' self.messages.next = 'Next' if renderstyle: _url = URL(APP, 'static', 'plugin_paginator/paginator.css') if _url not in current.response.files: current.response.files.append(_url)
def __init__(self, db): self.db = db settings = self.settings = Storage() settings.extra_fields = {} settings.table_purchase_order_name = 'checkout_purchase_order' settings.table_purchase_order = None settings.table_line_item_name = 'checkout_line_item' settings.table_line_item = None settings.table_shipping_address_name = 'checkout_shipping_address' settings.table_shipping_address = None settings.price_type = 'integer' messages = self.messages = Messages(current.T)
def __init__(self, db): self.db = db settings = self.settings = Storage() settings.extra_fields = {} settings.onconfirm = None settings.table_edge_name = 'friendship_edge' settings.table_edge = None settings.status_requesting = 'requesting' settings.status_confirmed = 'confirmed' messages = self.messages = Messages(current.T) messages.requesting = 'Requesting' messages.confirmed = 'Confirmed' messages.label_status = 'Status' messages.label_mutual_friends = 'Confirmed'
def __init__(self, db=None, hmac_key=None, signature=True): self.db = db session = current.session auth = session.auth self.user_groups = auth and auth.user_groups or {} now = current.request.now # if we have auth info # if not expired it, used it # if expired, clear the session # else, only clear auth info in the session if auth: delta = datetime.timedelta(days=0, seconds=auth.expiration) if auth.last_visit and auth.last_visit + delta > now: self.user = auth.user # this is a trick to speed up sessions to avoid many writes if (now - auth.last_visit).seconds > (auth.expiration // 10): auth.last_visit = now else: self.user = None if session.auth: del session.auth session.renew(clear_session=True) else: self.user = None if session.auth: del session.auth settings = self.settings = Settings(self.__class__.default_settings) settings.update( extra_fields={}, hmac_key=hmac_key, ) settings.lock_keys = True messages = self.messages = Messages(current.T) messages.update(self.default_messages) messages.lock_keys = True if signature is True: self.define_signature() else: self.signature = signature or None
def __init__(self, db, keyword='_managed_html'): self.db, self.keyword = db, keyword settings = self.settings = Storage() settings.URL = URL settings.home_url = '/' settings.home_label = 'Home' settings.page_crud = '' settings.image_crud = '' settings.file_crud = '' settings.table_content_name = 'managed_html_content' settings.table_content = None settings.table_image_name = 'managed_html_image' settings.table_image = None settings.extra_fields = {} settings.text_widget = None # settings.upload_widget = None settings.text_widget_cssfiles = [ ] # ex) [URL('static', 'css/base.css')] settings.uploadfolder = os.path.join(self.db._adapter.folder, '..', 'uploads') settings.upload = lambda filename: URL('download', args=[filename] ) # TODO messages = self.messages = Messages(current.T) self.view_mode = LIVE_MODE
cache.memcache = MemcacheClient(request, [settings.get_base_session_memcache()]) from gluon.contrib.memdb import MEMDB session.connect(request, response, db=MEMDB(cache.memcache)) #################################################################### # Instantiate Classes from Modules # # - store instances in current to be accessible from other modules # #################################################################### from gluon.tools import Mail mail = Mail() current.mail = mail from gluon.storage import Messages messages = Messages(T) current.messages = messages # Import the S3 Framework if update_check_needed: # Reload the Field definitions reload(s3base.s3fields) else: import s3 as s3base # Use session for persistent per-user variables # - beware of a user having multiple tabs open! # - don't save callables or class instances as these can't be pickled if not session.s3: session.s3 = Storage()
cache.memcache = MemcacheClient(request, [settings.get_base_session_memcache()]) from gluon.contrib.memdb import MEMDB session.connect(request, response, db=MEMDB(cache.memcache)) #################################################################### # Instantiate Classes from Modules # # - store instances in current to be accessible from other modules # #################################################################### from gluon.tools import Mail mail = Mail() current.mail = mail from gluon.storage import Messages messages = Messages(T) current.messages = messages ERROR = Messages(T) current.ERROR = ERROR # Import the S3 Framework if update_check_needed: # Reload the Field definitions reload(s3base.s3fields) else: import s3 as s3base # Set up logger (before any module attempts to use it!) import s3log s3log.S3Log.setup()
def test_decode(self): T = languages.translator(self.langpath, self.http_accept_language) messages = Messages(T) messages.update({'email_sent':'Email sent', 'test': "ä"}) self.assertEqual(to_unicode(messages.email_sent, 'utf-8'), 'Email sent')
from gluon.contrib.memdb import MEMDB session.connect(request, response, db=MEMDB(cache.memcache)) #else: ## Default to filesystem # pass #################################################################### # Instantiate Classes from Modules # # - store instances in current to be accessible from other modules # #################################################################### from gluon.tools import Mail current.mail = mail = Mail() from gluon.storage import Messages current.messages = messages = Messages(T) current.ERROR = ERROR = Messages(T) # Import the S3 Framework import s3 as s3base # Shortcut for use, primarily, from views # Set up logger (before any module attempts to use it!) import s3log s3log.S3Log.setup() # Keep top-level scope cleaner by accessing these from s3base #from s3 import AuthS3, S3Audit, S3Calendar, S3GIS, S3Msg, S3Sync, S3XML # AAA current.auth = auth = s3base.AuthS3()
def _define_messages(self): messages = Messages(current.T) messages.label_alt_login_username = '******' messages.label_add_alt_login_username = '******' messages.submit_button = 'Sign in' messages.submit_button_add = 'Add' messages.a_delete = 'Delete' messages.comment_openid_signin = 'What is OpenID?' messages.comment_openid_help_title = 'Start using your OpenID' messages.comment_openid_help_url = 'http://openid.net/get-an-openid/start-using-your-openid/' messages.openid_fail_discover = 'Failed to discover OpenID service. Check your OpenID or "More about OpenID"?' messages.flash_openid_expired = 'OpenID expired. Please login or authenticate OpenID again. Sorry for the inconvenient.' messages.flash_openid_associated = 'OpenID associated' messages.flash_associate_openid = 'Please login or register an account for this OpenID.' messages.p_openid_not_registered = "This Open ID haven't be registered. " \ + "Please login to associate with it or register an account for it." messages.flash_openid_authenticated = 'OpenID authenticated successfully.' messages.flash_openid_fail_authentication = 'OpenID authentication failed. (Error message: %s)' messages.flash_openid_canceled = 'OpenID authentication canceled by user.' messages.flash_openid_need_setup = 'OpenID authentication needs to be setup by the user with the provider first.' messages.h_openid_login = '******' messages.h_openid_list = 'OpenID List' return messages
def _define_messages(self): messages = Messages(self.environment.T) messages.label_alt_login_username = '******' messages.label_add_alt_login_username = '******' messages.submit_button = 'Sign in' messages.submit_button_add = 'Add' messages.a_delete = 'Delete' messages.comment_openid_signin = 'What is OpenID?' messages.comment_openid_help_title = 'Start using your OpenID' messages.comment_openid_help_url = 'http://openid.net/get-an-openid/start-using-your-openid/' messages.openid_fail_discover = 'Failed to discover OpenID service. Check your OpenID or "More about OpenID"?' messages.flash_openid_expired = 'OpenID expired. Please login or authenticate OpenID again. Sorry for the inconvenient.' messages.flash_openid_associated = 'OpenID associated' messages.flash_associate_openid = 'Please login or register an account for this OpenID.' messages.p_openid_not_registered = "This Open ID haven't be registered. " \ + "Please login to associate with it or register an account for it." messages.flash_openid_authenticated = 'OpenID authenticated successfully.' messages.flash_openid_fail_authentication = 'OpenID authentication failed. (Error message: %s)' messages.flash_openid_canceled = 'OpenID authentication canceled by user.' messages.flash_openid_need_setup = 'OpenID authentication needs to be setup by the user with the provider first.' messages.h_openid_login = '******' messages.h_openid_list = 'OpenID List' return messages
def __init__(self, api): """ auth=Auth(globals(), db) - environment is there for legacy but unused (awful) - db has to be the database where to create tables for authentication """ controller = 'default' cas_provider = None self.db = None self.environment = current request = current.request session = current.session auth = session.auth if auth and auth.last_visit and auth.last_visit + \ datetime.timedelta(days=0, seconds=auth.expiration) > request.now: self.user = auth.user # this is a trick to speed up sessions if (request.now - auth.last_visit).seconds > (auth.expiration / 10): auth.last_visit = request.now else: self.user = None session.auth = None settings = self.settings = Settings() # ## what happens after login? # ## what happens after registration? settings.hideerror = False settings.cas_domains = [request.env.http_host] settings.cas_provider = cas_provider settings.extra_fields = {} settings.actions_disabled = [] settings.reset_password_requires_verification = False settings.registration_requires_verification = False settings.registration_requires_approval = True settings.alternate_requires_registration = False settings.create_user_groups = False settings.controller = controller settings.login_url = self.url('user', args='login') settings.logged_url = self.url('user', args='profile') settings.download_url = self.url('download') settings.mailer = None settings.login_captcha = None settings.register_captcha = None settings.retrieve_username_captcha = None settings.retrieve_password_captcha = None settings.captcha = None settings.expiration = 3600 # one hour settings.long_expiration = 3600 * 30 * 24 # one month settings.remember_me_form = False settings.allow_basic_login = False settings.allow_basic_login_only = False settings.on_failed_authorization = \ self.url('user',args='not_authorized') settings.on_failed_authentication = lambda x: redirect(x) settings.formstyle = 'table3cols' settings.label_separator = ': ' # ## table names to be used settings.password_field = 'password' settings.table_user_name = 'auth_user' settings.table_group_name = 'auth_group' settings.table_membership_name = 'auth_membership' settings.table_permission_name = 'auth_permission' settings.table_event_name = 'auth_event' settings.table_cas_name = 'auth_cas' # ## if none, they will be created settings.table_user = None settings.table_group = None settings.table_membership = None settings.table_permission = None settings.table_event = None settings.table_cas = None # ## settings.showid = False # ## these should be functions or lambdas settings.login_next = self.url('index') settings.login_onvalidation = [] settings.login_onaccept = [] settings.login_methods = [self] settings.login_form = self settings.login_email_validate = True settings.login_userfield = "username" settings.logout_next = self.url('index') settings.logout_onlogout = lambda x: None settings.register_next = self.url('index') settings.register_onvalidation = [] settings.register_onaccept = [] settings.register_fields = None settings.verify_email_next = self.url('user', args='login') settings.verify_email_onaccept = [] settings.profile_next = self.url('index') settings.profile_onvalidation = [] settings.profile_onaccept = [] settings.profile_fields = None settings.retrieve_username_next = self.url('index') settings.retrieve_password_next = self.url('index') settings.request_reset_password_next = self.url('user', args='login') settings.reset_password_next = self.url('user', args='login') settings.change_password_next = self.url('index') settings.change_password_onvalidation = [] settings.change_password_onaccept = [] settings.retrieve_password_onvalidation = [] settings.reset_password_onvalidation = [] settings.hmac_key = None settings.lock_keys = True # ## these are messages that can be customized messages = self.messages = Messages(current.T) messages.login_button = 'Login' messages.register_button = 'Register' messages.password_reset_button = 'Request reset password' messages.password_change_button = 'Change password' messages.profile_save_button = 'Save profile' messages.submit_button = 'Submit' messages.verify_password = '******' messages.delete_label = 'Check to delete:' messages.function_disabled = 'Function disabled' messages.access_denied = 'Insufficient privileges' messages.registration_verifying = 'Registration needs verification' messages.registration_pending = 'Registration is pending approval' messages.login_disabled = 'Login disabled by administrator' messages.logged_in = 'Logged in' messages.email_sent = 'Email sent' messages.unable_to_send_email = 'Unable to send email' messages.email_verified = 'Email verified' messages.logged_out = 'Logged out' messages.registration_successful = 'Registration successful' messages.invalid_email = 'Invalid email' messages.unable_send_email = 'Unable to send email' messages.invalid_login = '******' messages.invalid_user = '******' messages.invalid_password = '******' messages.is_empty = "Cannot be empty" messages.mismatched_password = "******" messages.verify_email = 'A user wishes to join Syndicate.\nDetails:\n Username: %(username)s\n Email: %(email)s' messages.verify_email_subject = 'Email verification' messages.username_sent = 'Your username was emailed to you' messages.new_password_sent = 'A new password was emailed to you' messages.password_changed = 'Password changed' messages.retrieve_username = '******' messages.retrieve_username_subject = 'Username retrieve' messages.retrieve_password = '******' messages.retrieve_password_subject = 'Password retrieve' messages.reset_password = \ 'Click on the link http://...reset_password/%(key)s to reset your password' messages.reset_password_subject = 'Password reset' messages.invalid_reset_password = '******' messages.profile_updated = 'Profile updated' messages.new_password = '******' messages.old_password = '******' messages.group_description = \ 'Group uniquely assigned to user %(id)s' messages.register_log = 'User %(id)s Registered' messages.login_log = 'User %(id)s Logged-in' messages.login_failed_log = None messages.logout_log = 'User %(id)s Logged-out' messages.profile_log = 'User %(id)s Profile updated' messages.verify_email_log = 'User %(id)s Verification email sent' messages.retrieve_username_log = 'User %(id)s Username retrieved' messages.retrieve_password_log = 'User %(id)s Password retrieved' messages.reset_password_log = 'User %(id)s Password reset' messages.change_password_log = 'User %(id)s Password changed' messages.add_group_log = 'Group %(group_id)s created' messages.del_group_log = 'Group %(group_id)s deleted' messages.add_membership_log = None messages.del_membership_log = None messages.has_membership_log = None messages.add_permission_log = None messages.del_permission_log = None messages.has_permission_log = None messages.impersonate_log = 'User %(id)s is impersonating %(other_id)s' messages.label_first_name = 'First name' messages.label_last_name = 'Last name' messages.label_username = '******' messages.label_email = 'E-mail' messages.label_password = '******' messages.label_registration_key = 'Registration key' messages.label_reset_password_key = 'Reset Password key' messages.label_registration_id = 'Registration identifier' messages.label_role = 'Role' messages.label_description = 'Description' messages.label_user_id = 'User ID' messages.label_group_id = 'Group ID' messages.label_name = 'Name' messages.label_table_name = 'Table name' messages.label_record_id = 'Record ID' messages.label_time_stamp = 'Timestamp' messages.label_client_ip = 'Client IP' messages.label_origin = 'Origin' messages.label_remember_me = "Remember me (for 30 days)" messages['T'] = current.T messages.verify_password_comment = 'please input your password again' messages.lock_keys = True self.user = None self.api = api self.maint_email = api.config.MD_MAIL_SUPPORT_ADDRESS # disable stuff for now settings.actions_disabled.append('retrieve_username') settings.actions_disabled.append('retrieve_password') settings.actions_disabled.append('request_reset_password') settings.actions_disabled.append('profile') settings.actions_disabled.append('change_password')