def get_users_ssh_key(user_id, key_name): if not g.is_admin: fetch_user(user_id, False) # check that user is visible try: mgr = auth.admin_client_set().compute_ext.user_keypairs keypair = mgr.get(user_id, key_name) except osc_exc.NotFound: abort(404) return make_json_response(keypair_to_view(keypair))
def list_users_ssh_keys(user_id): parse_collection_request(_SCHEMA) fetch_user(user_id, g.is_admin) # check that user exists and is visible mgr = auth.admin_client_set().compute_ext.user_keypairs result = [keypair_to_view(keypair) for keypair in mgr.list(user_id)] parent_href = url_for('users.get_user', user_id=user_id) return make_collection_response('ssh-keys', result, parent_href=parent_href)
def create_users_ssh_key(user_id): data = parse_request_data(required=_SCHEMA.required) if user_id != auth.current_user_id(): auth.assert_admin() fetch_user(user_id, g.is_admin) # check that user exists and is visible mgr = auth.admin_client_set().compute_ext.user_keypairs try: kp = mgr.create(user_id, data['name'], data['public-key']) except osc_exc.BadRequest, e: raise exc.InvalidRequest(str(e))
def test_update_self(self): users.fetch_user(self.user.id, False).AndReturn(self.user) self.fake_client_set.identity_admin \ .users.update(self.user, name=self.name) \ .AndReturn('new-user') users.fetch_user(self.user.id, False).AndReturn('new-user') users.user_to_view('new-user').AndReturn('new-user-dict') self.mox.ReplayAll() post_params = { "name": self.name } rv = self.client.put('/v1/users/%s' % self.user.id, data=json.dumps(post_params), content_type='application/json') data = self.check_and_parse_response(rv) self.assertEquals(data, 'new-user-dict')
def test_update_self(self): users.fetch_user(self.user.id, False).AndReturn(self.user) self.fake_client_set.identity_admin \ .users.update(self.user, name=self.name) \ .AndReturn('new-user') users.fetch_user(self.user.id, False).AndReturn('new-user') users.user_to_view('new-user').AndReturn('new-user-dict') self.mox.ReplayAll() post_params = {"name": self.name} rv = self.client.put('/v1/users/%s' % self.user.id, data=json.dumps(post_params), content_type='application/json') data = self.check_and_parse_response(rv) self.assertEquals(data, 'new-user-dict')
def test_fetch_self(self): users.auth.admin_client_set().AndReturn(self.admin_cs) self.admin_cs.identity_admin.users.get('UID').AndReturn(self.user) users.auth.current_user_id().AndReturn('UID') self.mox.ReplayAll() with self.app.test_request_context(): self.install_fake_auth() user = users.fetch_user('UID', False) self.assertEquals(user, self.user)
def apply_password_reset(code): if not g.config('password-reset', 'enabled'): abort(404) data = parse_request_data(required=_APPLY_SCHEMA) token = ResetTokensDAO.get(code) if not token or token.complete: abort(404) user = fetch_user(token.user_id, admin_mode=True) update_user_data(user, data) ResetTokensDAO.complete_for_user(token.user_id) return make_json_response(None, status_code=204)
def test_fetch_user_as_user(self): users.auth.admin_client_set().AndReturn(self.admin_cs) self.admin_cs.identity_admin.users.get('UID').AndReturn(self.user) users.auth.current_user_id().AndReturn('ME') self.user.list_roles().AndReturn([self.role]) users.auth.current_user_project_ids().AndReturn(['PID', 'PID2']) self.mox.ReplayAll() with self.app.test_request_context(): self.install_fake_auth() user = users.fetch_user('UID', False) self.assertEquals(user, self.user)