def test_delete_setting(self):
     name = 'spaceship'
     value = 'NCC-74656'
     group = 'USS'
     store.set_setting(name, value, group)
     self.assertEquals('', store.get_setting(name, 'NON-USS', ''))
     self.assertEquals(value, store.get_setting(name, group, ''))
     store.delete_setting(name, group)
     self.assertEquals(None, store.get_setting(name, group))
示例#2
0
def get_feed_html():
    '''
    Get feed html in <head>...</head>.
    '''
    feed_title = store.get_setting(FEED_TITLE, GROUP_OPTIONS, 'Posts')
    feed_proxy = get_feed_url()
    return r'<link href="%s" title="%s" type="application/rss+xml" rel="alternate" />' % (feed_proxy, feed_title)
 def test_set_setting(self):
     name = 'email'
     value = '*****@*****.**'
     self.assertTrue(store.get_setting(name) is None)
     self.assertEquals('*****@*****.**', store.get_setting(name, store.DEFAULT_GROUP, '*****@*****.**'))
     store.set_setting(name, value)
     self.assertEquals(value, store.get_setting(name))
     name2 = 'url'
     value2 = 'http://guest.example.com'
     store.set_setting(name2, value2)
     # get settings as dict:
     d = store.get_settings()
     self.assertTrue(name in d)
     self.assertTrue(name2 in d)
     self.assertEquals(value, d[name])
     self.assertEquals(value2, d[name2])
示例#4
0
def get_feed_url():
    '''
    Get feed url
    '''
    feed_proxy = store.get_setting(FEED_PROXY, GROUP_OPTIONS, '')
    if not feed_proxy:
        feed_proxy = '/blog/feed'
    return feed_proxy
示例#5
0
def get_feed_html():
    '''
    Get feed html in <head>...</head>.
    '''
    feed_title = store.get_setting(FEED_TITLE, GROUP_OPTIONS, 'Posts')
    feed_proxy = get_feed_url()
    return r'<link href="%s" title="%s" type="application/rss+xml" rel="alternate" />' % (
        feed_proxy, feed_title)
示例#6
0
def get_feed_url():
    '''
    Get feed url
    '''
    feed_proxy = store.get_setting(FEED_PROXY, GROUP_OPTIONS, '')
    if not feed_proxy:
        feed_proxy = '/blog/feed'
    return feed_proxy
示例#7
0
def do_forgot(**kw):
    ip = kw['request'].remote_addr
    ctx = kw['context']
    # verify captcha:
    challenge = ctx.get_argument('recaptcha_challenge_field', '')
    response = ctx.get_argument('recaptcha_response_field', '')
    email = ctx.get_argument('email', '')
    user = store.get_user_by_email(email)
    if user is None:
        return {
            '__view__' : 'forgot',
            'email' : email,
            'error' : 'Email is not exist',
            'recaptcha_public_key' : recaptcha.get_public_key(),
            'site' : _get_site_info(),
            'version' : get_version(),
        }
    result, error = recaptcha.verify_captcha(challenge, response, recaptcha.get_private_key(), ip)
    if result:
        token = model.create_reset_password_token(user.id)
        sender = store.get_setting('sender', 'mail', '')
        if not sender:
            raise ApplicationError('Cannot send mail: mail sender address is not configured.')
        appid = kw['environ']['APPLICATION_ID']
        body = r'''Dear %s
  You received this mail because you have requested reset your password.
  Please paste the following link to the address bar of the browser, then press ENTER:
  https://%s.appspot.com/manage/reset?token=%s
''' % (user.nicename, appid, token)
        html = r'''<html>
<body>
<p>Dear %s</p>
<p>You received this mail because you have requested reset your password.<p>
<p>Please paste the following link to reset your password:</p>
<p><a href="https://%s.appspot.com/manage/reset?token=%s">https://%s.appspot.com/manage/reset?token=%s</a></p>
<p>If you have trouble in clicking the URL above, please paste the following link to the address bar of the browser, then press ENTER:</p>
<p>https://%s.appspot.com/manage/reset?token=%s</p>
</body>
</html>
''' % (urllib.quote(user.nicename), appid, token, appid, token, appid, token)
        mail.send(sender, email, 'Reset your password', body, html)
        return {
            '__view__' : 'sent',
            'email' : email,
            'site' : _get_site_info(),
            'version' : get_version(),
    }
    return {
            '__view__' : 'forgot',
            'email' : email,
            'error' : error,
            'recaptcha_public_key' : recaptcha.get_public_key(),
            'site' : _get_site_info(),
            'version' : get_version(),
    }
示例#8
0
def do_register(**kw):
    ctx = kw['context']
    email = ctx.get_argument('email', '').lower()
    password = ctx.get_argument('password')
    nicename = ctx.get_argument('nicename')
    role = int(store.get_setting('default_role', 'site', `store.ROLE_SUBSCRIBER`))
    error = ''
    try:
        user = store.create_user(role, email, password, nicename)
        value = cookie.make_sign_in_cookie(user.id, password, 86400)
        ctx.set_cookie(cookie.AUTO_SIGNIN_COOKIE, value)
        return 'redirect:/manage/'
    except store.UserAlreadyExistError:
        error = 'Email is already registered by other'
    except StandardError:
        logging.exception('Error when create user')
        error = 'Unexpected error occurred'
    return {
            '__view__' : 'register.html',
            'error' : error,
            'site' : _get_site_info(),
    }
示例#9
0
文件: app.py 项目: cng1985/express-me
def main_page():
    '''
    show main page of wiki
    '''
    entry = store.get_setting('entry', WIKI_SETTINGS, 'Main Page')
    return get_page(entry)
示例#10
0
def _get_site_info():
    return {'name': store.get_setting('name', 'site', 'ExpressMe')}
 def test_error(self):
     self.assertRaises(ValueError, lambda: store.set_setting(123, 'abc'))
     self.assertRaises(ValueError, lambda: store.set_setting('abc', 123))
     self.assertRaises(ValueError, lambda: store.get_setting(123))
     self.assertRaises(ValueError, lambda: store.get_settings(9.99))
示例#12
0
def _get_site_info():
    return { 'name' : store.get_setting('name', 'site', 'ExpressMe') }
示例#13
0
def main_page():
    '''
    show main page of wiki
    '''
    entry = store.get_setting('entry', WIKI_SETTINGS, 'Main Page')
    return get_page(entry)