Exemple #1
0
 def _DoAuth(self):
     try:
         self.user = auth.DoOAuthAuth()
     except auth.NotAuthenticated:
         enable_admin_check = True
         # OAuth was either not used or failed, so perform regular user auth.
         self.user = auth.DoUserAuth(is_admin=enable_admin_check)
Exemple #2
0
  def testDoOAuthAuthSuccessSettings(self, _):
    """Test DoOAuthAuth() with success, where user is in settings file."""
    email = '*****@*****.**'
    user_service_stub = self.testbed.get_stub(testbed.USER_SERVICE_NAME)
    user_service_stub.SetOAuthUser(email, scopes=[auth.OAUTH_SCOPE])

    auth.settings.OAUTH_USERS = [email]
    self.assertEqual(email, auth.DoOAuthAuth().email())
Exemple #3
0
    def MockDoOAuthAuth(self, user=None, is_admin=None, fail=False):
        """Mock calling auth.DoOAuthAuth().

    Args:
      user: user for DoOAuthAuth to return.
      fail: bool, whether to fail or not
    """
        if not 'authDoOAuthAuth' in self._set_mock:
            self.mox.StubOutWithMock(auth, 'DoOAuthAuth')
            self._set_mock['authDoOAuthAuth'] = 1
        if fail:
            if is_admin is None:
                auth.DoOAuthAuth().AndRaise(auth.NotAuthenticated)
            else:
                auth.DoOAuthAuth(is_admin=is_admin).AndRaise(
                    auth.NotAuthenticated)
        else:
            if is_admin is None:
                auth.DoOAuthAuth().AndReturn(user)
            else:
                auth.DoOAuthAuth(is_admin=is_admin).AndReturn(user)
Exemple #4
0
  def testDoOAuthAuthSuccess(self, *_):
    """Test DoOAuthAuth() with success, where user is in KeyValueCache."""

    email = '*****@*****.**'
    user_service_stub = self.testbed.get_stub(testbed.USER_SERVICE_NAME)
    user_service_stub.SetOAuthUser(email, scopes=[auth.OAUTH_SCOPE])
    auth.settings.OAUTH_USERS = []

    auth.models.KeyValueCache.MemcacheWrappedSet(
        'oauth_users', 'text_value', auth.util.Serialize([email]))

    self.assertEqual(email, auth.DoOAuthAuth(is_admin=True).email())
Exemple #5
0
    def post(self):
        """DynamicManifest post handler."""
        # TODO(user): setup DoUserAuth require_level=gaeserver.LEVEL_API_DYN_MAN.
        try:
            self.user = auth.DoOAuthAuth()
        except auth.NotAuthenticated:
            enable_admin_check = True
            # OAuth was either not used or failed, so perform regular user auth.
            self.user = auth.DoUserAuth(is_admin=enable_admin_check)

        mod_type = self.request.get('mod_type')
        target = self.request.get('target')
        mutate = self.request.get('mutate', 'true').lower() == 'true'
        if not mutate:
            logging.info('Enabling dry-run mode')

        pkg_alias = self.request.get('pkg_alias')
        if pkg_alias:
            pkg_name = models.PackageAlias.ResolvePackageName(pkg_alias)
            if not pkg_name:
                logging.info('Package alias not found: %s', pkg_alias)
                self.error(404)
                return
            logging.debug('Found pkg_name=%s for pkg_alias=%s', pkg_name,
                          pkg_alias)
        else:
            pkg_name = self.request.get('pkg_name')

        try:
            self._ParseParameters(mod_type, target, pkg_name)
        except InvalidModificationType:
            self.error(404)
            return

        try:
            if mutate:
                self._PutMod()
            self.response.headers['Content-Type'] = 'application/json'
            self.response.out.write(json.dumps([{'pkg_name': pkg_name}]))
        except ValueError:
            self.error(400)
        except db.Error:
            self.error(500)
Exemple #6
0
  def testDoOAuthAuthSuccessSettings(self):
    """Test DoOAuthAuth() with success, where user is in settings file."""
    self.mox.StubOutWithMock(auth.oauth, 'get_current_user')
    self.mox.StubOutWithMock(auth.models.KeyValueCache, 'MemcacheWrappedGet')

    mock_user = self.mox.CreateMockAnything()
    mock_oauth_users = self.mox.CreateMockAnything()
    email = '*****@*****.**'
    auth.settings.OAUTH_USERS = [email]

    auth.models.KeyValueCache.MemcacheWrappedGet(
        'oauth_users', 'text_value').AndReturn(None)

    auth.oauth.get_current_user().AndReturn(mock_user)
    mock_user.email().AndReturn(email)

    self.mox.ReplayAll()
    auth.DoOAuthAuth()
    self.mox.VerifyAll()
Exemple #7
0
  def testDoOAuthAuthSuccess(self):
    """Test DoOAuthAuth() with success, where user is in KeyValueCache."""
    self.mox.StubOutWithMock(auth.oauth, 'get_current_user')
    self.mox.StubOutWithMock(auth, 'IsAdminUser')
    self.mox.StubOutWithMock(auth.models.KeyValueCache, 'MemcacheWrappedGet')
    self.mox.StubOutWithMock(auth.util, 'Deserialize')

    mock_user = self.mox.CreateMockAnything()
    email = '*****@*****.**'
    auth.settings.OAUTH_USERS = []
    oauth_users = [email]

    auth.oauth.get_current_user().AndReturn(mock_user)
    mock_user.email().AndReturn(email)
    auth.IsAdminUser(email).AndReturn(True)
    auth.models.KeyValueCache.MemcacheWrappedGet(
        'oauth_users', 'text_value').AndReturn(oauth_users)
    auth.util.Deserialize(oauth_users).AndReturn(oauth_users)

    self.mox.ReplayAll()
    auth.DoOAuthAuth(is_admin=True)
    self.mox.VerifyAll()