示例#1
0
    def post(self):
        try:
            email = self.request.get('email')
            hkey = self.request.get('hkey')
            
            tenant_id = tenant.get_tenant_id(email)
            namespace_manager.set_namespace(tenant_id)

            if User.get_by_key_name(email):
                raise AppError(u'このメールアドレスは、既に登録されています。')

            if self.request.get('button') == 'Send Activate Key':
                key = ActivateKey.make(email)
                self.send_activate_key(email, key[:12])
                hkey = key[12:]
                self.render_template('signup.html', {'email': email, 'hkey': hkey})
                return
            else:
                key = self.request.get('key1') + self.request.get('key2') + self.request.get('key3') + self.request.get('hkey')
                if not ActivateKey.validate(email, key):
                    raise AppError(u'不正な Activate Key です。')
                password = self.request.get('password')
                if not string.strip(password):
                    raise AppError(u'パスワードが未入力です。')
                user = User(key_name=email, email=email, password=hashlib.md5(email + password).hexdigest())
                user.put()
                self.redirect('/')

        except AppError, e:
            self.render_template('signup.html', {'error_msg': e.message, 'email': email, 'hkey': hkey})
示例#2
0
 def handler(self, *args, **kw):
     try:
         (method, encoded) = self.request.headers['AUTHORIZATION'].split()
         if method.lower() == 'basic':
             (login_id, password) = base64.b64decode(encoded).split(':')
             
             tenant_id = tenant.get_tenant_id(login_id)
             namespace_manager.set_namespace(tenant_id)
             
             user = User.get_by_key_name(login_id)
             if not user:
                 raise BasicAuthError
             if user.password == hashlib.md5(login_id + password).hexdigest():
                 globals()['get_current_user'] = lambda : user
                 return func(self, *args, **kw)
             raise BasicAuthError
     except (KeyError, BasicAuthError), e:
         self.response.set_status(401)
         self.response.headers['WWW-Authenticate'] = 'Basic realm="%s"' % (realm or 'Default')
         self.response.write(e)
         return
示例#3
0
 def __init__(self):
     self._authenticate()
     self.tenant_id = tenant.get_tenant_id(self.bearer_token, self.org_guid, self.space_guid)
     self.logger = TestLogger(__name__)