mirror of
https://github.com/zulip/zulip.git
synced 2025-11-07 15:33:30 +00:00
users: Remove unnecessary get_api_key helper.
Using the column name is clearer.
This commit is contained in:
committed by
Tim Abbott
parent
8804c1afaa
commit
a7d513e5ec
@@ -39,7 +39,6 @@ with test_server_running(
|
|||||||
)
|
)
|
||||||
from zerver.actions.users import change_user_is_active
|
from zerver.actions.users import change_user_is_active
|
||||||
from zerver.lib.test_helpers import reset_email_visibility_to_everyone_in_zulip_realm
|
from zerver.lib.test_helpers import reset_email_visibility_to_everyone_in_zulip_realm
|
||||||
from zerver.lib.users import get_api_key
|
|
||||||
from zerver.models.groups import NamedUserGroup, SystemGroups
|
from zerver.models.groups import NamedUserGroup, SystemGroups
|
||||||
from zerver.models.realms import get_realm
|
from zerver.models.realms import get_realm
|
||||||
from zerver.models.users import get_user
|
from zerver.models.users import get_user
|
||||||
@@ -75,7 +74,7 @@ with test_server_running(
|
|||||||
user.can_change_user_emails = True
|
user.can_change_user_emails = True
|
||||||
user.save(update_fields=["can_create_users", "can_change_user_emails"])
|
user.save(update_fields=["can_create_users", "can_change_user_emails"])
|
||||||
|
|
||||||
api_key = get_api_key(user)
|
api_key = user.api_key
|
||||||
site = "http://zulip.zulipdev.com:9981"
|
site = "http://zulip.zulipdev.com:9981"
|
||||||
client = Client(
|
client = Client(
|
||||||
email=email,
|
email=email,
|
||||||
@@ -88,7 +87,7 @@ with test_server_running(
|
|||||||
realm = get_realm("zulip")
|
realm = get_realm("zulip")
|
||||||
user = get_user(email, realm)
|
user = get_user(email, realm)
|
||||||
|
|
||||||
api_key = get_api_key(user)
|
api_key = user.api_key
|
||||||
site = "http://zulip.zulipdev.com:9981"
|
site = "http://zulip.zulipdev.com:9981"
|
||||||
owner_client = Client(
|
owner_client = Client(
|
||||||
email=email,
|
email=email,
|
||||||
@@ -101,7 +100,7 @@ with test_server_running(
|
|||||||
guest_user = do_create_user(
|
guest_user = do_create_user(
|
||||||
"guest@zulip.com", "secret", get_realm("zulip"), "Mr. Guest", acting_user=None
|
"guest@zulip.com", "secret", get_realm("zulip"), "Mr. Guest", acting_user=None
|
||||||
)
|
)
|
||||||
api_key = get_api_key(guest_user)
|
api_key = guest_user.api_key
|
||||||
nonadmin_client = Client(
|
nonadmin_client = Client(
|
||||||
email=email,
|
email=email,
|
||||||
api_key=api_key,
|
api_key=api_key,
|
||||||
|
|||||||
@@ -42,7 +42,6 @@ from zerver.lib.user_groups import get_system_user_group_for_user
|
|||||||
from zerver.lib.users import (
|
from zerver.lib.users import (
|
||||||
can_access_delivery_email,
|
can_access_delivery_email,
|
||||||
format_user_row,
|
format_user_row,
|
||||||
get_api_key,
|
|
||||||
get_data_for_inaccessible_user,
|
get_data_for_inaccessible_user,
|
||||||
get_user_ids_who_can_access_user,
|
get_user_ids_who_can_access_user,
|
||||||
user_access_restricted_in_realm,
|
user_access_restricted_in_realm,
|
||||||
@@ -478,7 +477,7 @@ def created_bot_event(user_profile: UserProfile) -> dict[str, Any]:
|
|||||||
full_name=user_profile.full_name,
|
full_name=user_profile.full_name,
|
||||||
bot_type=user_profile.bot_type,
|
bot_type=user_profile.bot_type,
|
||||||
is_active=user_profile.is_active,
|
is_active=user_profile.is_active,
|
||||||
api_key=get_api_key(user_profile),
|
api_key=user_profile.api_key,
|
||||||
default_sending_stream=default_sending_stream_name,
|
default_sending_stream=default_sending_stream_name,
|
||||||
default_events_register_stream=default_events_register_stream_name,
|
default_events_register_stream=default_events_register_stream_name,
|
||||||
default_all_public_streams=user_profile.default_all_public_streams,
|
default_all_public_streams=user_profile.default_all_public_streams,
|
||||||
|
|||||||
@@ -79,7 +79,6 @@ from zerver.lib.thumbnail import ThumbnailFormat
|
|||||||
from zerver.lib.topic import RESOLVED_TOPIC_PREFIX, filter_by_topic_name_via_message
|
from zerver.lib.topic import RESOLVED_TOPIC_PREFIX, filter_by_topic_name_via_message
|
||||||
from zerver.lib.upload import upload_message_attachment_from_request
|
from zerver.lib.upload import upload_message_attachment_from_request
|
||||||
from zerver.lib.user_groups import get_system_user_group_for_user
|
from zerver.lib.user_groups import get_system_user_group_for_user
|
||||||
from zerver.lib.users import get_api_key
|
|
||||||
from zerver.lib.webhooks.common import (
|
from zerver.lib.webhooks.common import (
|
||||||
check_send_webhook_message,
|
check_send_webhook_message,
|
||||||
get_fixture_http_headers,
|
get_fixture_http_headers,
|
||||||
@@ -956,7 +955,7 @@ Output:
|
|||||||
# TODO: use encode_user where possible
|
# TODO: use encode_user where possible
|
||||||
assert "@" in email
|
assert "@" in email
|
||||||
user = get_user_by_delivery_email(email, get_realm(realm))
|
user = get_user_by_delivery_email(email, get_realm(realm))
|
||||||
api_key = get_api_key(user)
|
api_key = user.api_key
|
||||||
|
|
||||||
return self.encode_credentials(email, api_key)
|
return self.encode_credentials(email, api_key)
|
||||||
|
|
||||||
@@ -2437,7 +2436,7 @@ one or more new messages.
|
|||||||
def build_webhook_url(self, *args: str, **kwargs: str) -> str:
|
def build_webhook_url(self, *args: str, **kwargs: str) -> str:
|
||||||
url = self.URL_TEMPLATE
|
url = self.URL_TEMPLATE
|
||||||
if url.find("api_key") >= 0:
|
if url.find("api_key") >= 0:
|
||||||
api_key = get_api_key(self.test_user)
|
api_key = self.test_user.api_key
|
||||||
url = self.URL_TEMPLATE.format(api_key=api_key, stream=self.CHANNEL_NAME)
|
url = self.URL_TEMPLATE.format(api_key=api_key, stream=self.CHANNEL_NAME)
|
||||||
else:
|
else:
|
||||||
url = self.URL_TEMPLATE.format(stream=self.CHANNEL_NAME)
|
url = self.URL_TEMPLATE.format(stream=self.CHANNEL_NAME)
|
||||||
|
|||||||
@@ -497,10 +497,6 @@ def get_accounts_for_email(email: str) -> list[Account]:
|
|||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
def get_api_key(user_profile: UserProfile) -> str:
|
|
||||||
return user_profile.api_key
|
|
||||||
|
|
||||||
|
|
||||||
def validate_user_custom_profile_field(
|
def validate_user_custom_profile_field(
|
||||||
realm_id: int, field: CustomProfileField, value: ProfileDataElementValue
|
realm_id: int, field: CustomProfileField, value: ProfileDataElementValue
|
||||||
) -> ProfileDataElementValue:
|
) -> ProfileDataElementValue:
|
||||||
|
|||||||
@@ -20,7 +20,6 @@ from zerver.lib.events import do_events_register
|
|||||||
from zerver.lib.initial_password import initial_password
|
from zerver.lib.initial_password import initial_password
|
||||||
from zerver.lib.test_classes import ZulipTestCase
|
from zerver.lib.test_classes import ZulipTestCase
|
||||||
from zerver.lib.upload import upload_message_attachment
|
from zerver.lib.upload import upload_message_attachment
|
||||||
from zerver.lib.users import get_api_key
|
|
||||||
from zerver.models import Client, Message, NamedUserGroup, UserPresence
|
from zerver.models import Client, Message, NamedUserGroup, UserPresence
|
||||||
from zerver.models.realms import get_realm
|
from zerver.models.realms import get_realm
|
||||||
from zerver.models.users import UserProfile, get_user
|
from zerver.models.users import UserProfile, get_user
|
||||||
@@ -377,7 +376,7 @@ def deactivate_own_user() -> dict[str, object]:
|
|||||||
)
|
)
|
||||||
realm = get_realm("zulip")
|
realm = get_realm("zulip")
|
||||||
test_user = get_user(test_user_email, realm)
|
test_user = get_user(test_user_email, realm)
|
||||||
test_user_api_key = get_api_key(test_user)
|
test_user_api_key = test_user.api_key
|
||||||
# change authentication line to allow test_client to delete itself.
|
# change authentication line to allow test_client to delete itself.
|
||||||
AUTHENTICATION_LINE[0] = f"{deactivate_test_user.email}:{test_user_api_key}"
|
AUTHENTICATION_LINE[0] = f"{deactivate_test_user.email}:{test_user_api_key}"
|
||||||
return {}
|
return {}
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ from zerver.lib.test_helpers import (
|
|||||||
from zerver.lib.thumbnail import DEFAULT_AVATAR_SIZE, MEDIUM_AVATAR_SIZE, resize_avatar
|
from zerver.lib.thumbnail import DEFAULT_AVATAR_SIZE, MEDIUM_AVATAR_SIZE, resize_avatar
|
||||||
from zerver.lib.types import Validator
|
from zerver.lib.types import Validator
|
||||||
from zerver.lib.user_groups import is_user_in_group
|
from zerver.lib.user_groups import is_user_in_group
|
||||||
from zerver.lib.users import get_api_key, get_users_for_api
|
from zerver.lib.users import get_users_for_api
|
||||||
from zerver.lib.utils import assert_is_not_none
|
from zerver.lib.utils import assert_is_not_none
|
||||||
from zerver.lib.validator import (
|
from zerver.lib.validator import (
|
||||||
check_bool,
|
check_bool,
|
||||||
@@ -7656,7 +7656,7 @@ class JWTFetchAPIKeyTest(ZulipTestCase):
|
|||||||
self.email = self.example_email("hamlet")
|
self.email = self.example_email("hamlet")
|
||||||
self.realm = get_realm("zulip")
|
self.realm = get_realm("zulip")
|
||||||
self.user_profile = get_user_by_delivery_email(self.email, self.realm)
|
self.user_profile = get_user_by_delivery_email(self.email, self.realm)
|
||||||
self.api_key = get_api_key(self.user_profile)
|
self.api_key = self.user_profile.api_key
|
||||||
self.raw_user_data = get_users_for_api(
|
self.raw_user_data = get_users_for_api(
|
||||||
self.user_profile.realm,
|
self.user_profile.realm,
|
||||||
self.user_profile,
|
self.user_profile,
|
||||||
|
|||||||
@@ -50,7 +50,6 @@ from zerver.lib.response import json_response, json_success
|
|||||||
from zerver.lib.test_classes import ZulipTestCase
|
from zerver.lib.test_classes import ZulipTestCase
|
||||||
from zerver.lib.test_helpers import HostRequestMock, dummy_handler, queries_captured
|
from zerver.lib.test_helpers import HostRequestMock, dummy_handler, queries_captured
|
||||||
from zerver.lib.user_agent import parse_user_agent
|
from zerver.lib.user_agent import parse_user_agent
|
||||||
from zerver.lib.users import get_api_key
|
|
||||||
from zerver.lib.utils import generate_api_key, has_api_key_format
|
from zerver.lib.utils import generate_api_key, has_api_key_format
|
||||||
from zerver.middleware import LogRequests, parse_client
|
from zerver.middleware import LogRequests, parse_client
|
||||||
from zerver.models import Client, Realm, UserProfile
|
from zerver.models import Client, Realm, UserProfile
|
||||||
@@ -154,7 +153,7 @@ class DecoratorTestCase(ZulipTestCase):
|
|||||||
webhook_bot_email = "webhook-bot@zulip.com"
|
webhook_bot_email = "webhook-bot@zulip.com"
|
||||||
webhook_bot_realm = get_realm("zulip")
|
webhook_bot_realm = get_realm("zulip")
|
||||||
webhook_bot = get_user(webhook_bot_email, webhook_bot_realm)
|
webhook_bot = get_user(webhook_bot_email, webhook_bot_realm)
|
||||||
webhook_bot_api_key = get_api_key(webhook_bot)
|
webhook_bot_api_key = webhook_bot.api_key
|
||||||
|
|
||||||
request = HostRequestMock()
|
request = HostRequestMock()
|
||||||
request.POST["api_key"] = "X" * 32
|
request.POST["api_key"] = "X" * 32
|
||||||
@@ -339,7 +338,7 @@ class SkipRateLimitingTest(ZulipTestCase):
|
|||||||
|
|
||||||
request = HostRequestMock(host="zulip.testserver")
|
request = HostRequestMock(host="zulip.testserver")
|
||||||
request.method = "POST"
|
request.method = "POST"
|
||||||
request.POST["api_key"] = get_api_key(self.example_user("hamlet"))
|
request.POST["api_key"] = self.example_user("hamlet").api_key
|
||||||
with mock.patch("zerver.decorator.rate_limit_user") as rate_limit_mock:
|
with mock.patch("zerver.decorator.rate_limit_user") as rate_limit_mock:
|
||||||
result = my_unlimited_view(request)
|
result = my_unlimited_view(request)
|
||||||
|
|
||||||
@@ -348,7 +347,7 @@ class SkipRateLimitingTest(ZulipTestCase):
|
|||||||
|
|
||||||
request = HostRequestMock(host="zulip.testserver")
|
request = HostRequestMock(host="zulip.testserver")
|
||||||
request.method = "POST"
|
request.method = "POST"
|
||||||
request.POST["api_key"] = get_api_key(self.example_user("hamlet"))
|
request.POST["api_key"] = self.example_user("hamlet").api_key
|
||||||
with mock.patch("zerver.decorator.rate_limit_user") as rate_limit_mock:
|
with mock.patch("zerver.decorator.rate_limit_user") as rate_limit_mock:
|
||||||
result = my_rate_limited_view(request)
|
result = my_rate_limited_view(request)
|
||||||
|
|
||||||
@@ -462,7 +461,7 @@ class DecoratorLoggingTestCase(ZulipTestCase):
|
|||||||
|
|
||||||
def test_authenticated_rest_api_view_errors(self) -> None:
|
def test_authenticated_rest_api_view_errors(self) -> None:
|
||||||
user_profile = self.example_user("hamlet")
|
user_profile = self.example_user("hamlet")
|
||||||
api_key = get_api_key(user_profile)
|
api_key = user_profile.api_key
|
||||||
credentials = f"{user_profile.email}:{api_key}"
|
credentials = f"{user_profile.email}:{api_key}"
|
||||||
api_auth = "Digest " + base64.b64encode(credentials.encode()).decode()
|
api_auth = "Digest " + base64.b64encode(credentials.encode()).decode()
|
||||||
result = self.client_post("/api/v1/external/zendesk", {}, HTTP_AUTHORIZATION=api_auth)
|
result = self.client_post("/api/v1/external/zendesk", {}, HTTP_AUTHORIZATION=api_auth)
|
||||||
@@ -676,7 +675,7 @@ class DeactivatedRealmTest(ZulipTestCase):
|
|||||||
email_owners=False,
|
email_owners=False,
|
||||||
)
|
)
|
||||||
user_profile = self.example_user("hamlet")
|
user_profile = self.example_user("hamlet")
|
||||||
api_key = get_api_key(user_profile)
|
api_key = user_profile.api_key
|
||||||
url = f"/api/v1/external/jira?api_key={api_key}&stream=jira_custom"
|
url = f"/api/v1/external/jira?api_key={api_key}&stream=jira_custom"
|
||||||
data = self.webhook_fixture_data("jira", "created_v2")
|
data = self.webhook_fixture_data("jira", "created_v2")
|
||||||
result = self.client_post(url, data, content_type="application/json")
|
result = self.client_post(url, data, content_type="application/json")
|
||||||
@@ -878,7 +877,7 @@ class InactiveUserTest(ZulipTestCase):
|
|||||||
user_profile = self.example_user("hamlet")
|
user_profile = self.example_user("hamlet")
|
||||||
do_deactivate_user(user_profile, acting_user=None)
|
do_deactivate_user(user_profile, acting_user=None)
|
||||||
|
|
||||||
api_key = get_api_key(user_profile)
|
api_key = user_profile.api_key
|
||||||
url = f"/api/v1/external/jira?api_key={api_key}&stream=jira_custom"
|
url = f"/api/v1/external/jira?api_key={api_key}&stream=jira_custom"
|
||||||
data = self.webhook_fixture_data("jira", "created_v2")
|
data = self.webhook_fixture_data("jira", "created_v2")
|
||||||
result = self.client_post(url, data, content_type="application/json")
|
result = self.client_post(url, data, content_type="application/json")
|
||||||
@@ -937,19 +936,19 @@ class TestValidateApiKey(ZulipTestCase):
|
|||||||
# We use default_bot's key but webhook_bot's email address to test
|
# We use default_bot's key but webhook_bot's email address to test
|
||||||
# the logic when an API key is passed and it doesn't belong to the
|
# the logic when an API key is passed and it doesn't belong to the
|
||||||
# user whose email address has been provided.
|
# user whose email address has been provided.
|
||||||
api_key = get_api_key(self.default_bot)
|
api_key = self.default_bot.api_key
|
||||||
validate_api_key(HostRequestMock(), self.webhook_bot.email, api_key)
|
validate_api_key(HostRequestMock(), self.webhook_bot.email, api_key)
|
||||||
|
|
||||||
def test_validate_api_key_if_profile_is_not_active(self) -> None:
|
def test_validate_api_key_if_profile_is_not_active(self) -> None:
|
||||||
change_user_is_active(self.default_bot, False)
|
change_user_is_active(self.default_bot, False)
|
||||||
with self.assertRaises(JsonableError):
|
with self.assertRaises(JsonableError):
|
||||||
api_key = get_api_key(self.default_bot)
|
api_key = self.default_bot.api_key
|
||||||
validate_api_key(HostRequestMock(), self.default_bot.email, api_key)
|
validate_api_key(HostRequestMock(), self.default_bot.email, api_key)
|
||||||
change_user_is_active(self.default_bot, True)
|
change_user_is_active(self.default_bot, True)
|
||||||
|
|
||||||
def test_validate_api_key_if_profile_is_incoming_webhook_and_is_webhook_is_unset(self) -> None:
|
def test_validate_api_key_if_profile_is_incoming_webhook_and_is_webhook_is_unset(self) -> None:
|
||||||
with self.assertRaises(JsonableError), self.assertLogs(level="WARNING") as root_warn_log:
|
with self.assertRaises(JsonableError), self.assertLogs(level="WARNING") as root_warn_log:
|
||||||
api_key = get_api_key(self.webhook_bot)
|
api_key = self.webhook_bot.api_key
|
||||||
validate_api_key(HostRequestMock(), self.webhook_bot.email, api_key)
|
validate_api_key(HostRequestMock(), self.webhook_bot.email, api_key)
|
||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
root_warn_log.output,
|
root_warn_log.output,
|
||||||
@@ -959,7 +958,7 @@ class TestValidateApiKey(ZulipTestCase):
|
|||||||
)
|
)
|
||||||
|
|
||||||
def test_validate_api_key_if_profile_is_incoming_webhook_and_is_webhook_is_set(self) -> None:
|
def test_validate_api_key_if_profile_is_incoming_webhook_and_is_webhook_is_set(self) -> None:
|
||||||
api_key = get_api_key(self.webhook_bot)
|
api_key = self.webhook_bot.api_key
|
||||||
profile = validate_api_key(
|
profile = validate_api_key(
|
||||||
HostRequestMock(host="zulip.testserver"),
|
HostRequestMock(host="zulip.testserver"),
|
||||||
self.webhook_bot.email,
|
self.webhook_bot.email,
|
||||||
@@ -969,7 +968,7 @@ class TestValidateApiKey(ZulipTestCase):
|
|||||||
self.assertEqual(profile.id, self.webhook_bot.id)
|
self.assertEqual(profile.id, self.webhook_bot.id)
|
||||||
|
|
||||||
def test_validate_api_key_if_email_is_case_insensitive(self) -> None:
|
def test_validate_api_key_if_email_is_case_insensitive(self) -> None:
|
||||||
api_key = get_api_key(self.default_bot)
|
api_key = self.default_bot.api_key
|
||||||
profile = validate_api_key(
|
profile = validate_api_key(
|
||||||
HostRequestMock(host="zulip.testserver"), self.default_bot.email.upper(), api_key
|
HostRequestMock(host="zulip.testserver"), self.default_bot.email.upper(), api_key
|
||||||
)
|
)
|
||||||
@@ -977,7 +976,7 @@ class TestValidateApiKey(ZulipTestCase):
|
|||||||
|
|
||||||
def test_valid_api_key_if_user_is_on_wrong_subdomain(self) -> None:
|
def test_valid_api_key_if_user_is_on_wrong_subdomain(self) -> None:
|
||||||
with self.settings(RUNNING_INSIDE_TORNADO=False):
|
with self.settings(RUNNING_INSIDE_TORNADO=False):
|
||||||
api_key = get_api_key(self.default_bot)
|
api_key = self.default_bot.api_key
|
||||||
with (
|
with (
|
||||||
self.assertLogs(level="WARNING") as m,
|
self.assertLogs(level="WARNING") as m,
|
||||||
self.assertRaisesRegex(
|
self.assertRaisesRegex(
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ from zerver.lib.test_helpers import (
|
|||||||
reset_email_visibility_to_everyone_in_zulip_realm,
|
reset_email_visibility_to_everyone_in_zulip_realm,
|
||||||
stub_event_queue_user_events,
|
stub_event_queue_user_events,
|
||||||
)
|
)
|
||||||
from zerver.lib.users import get_api_key, get_users_for_api
|
from zerver.lib.users import get_users_for_api
|
||||||
from zerver.models import CustomProfileField, UserMessage, UserPresence, UserProfile
|
from zerver.models import CustomProfileField, UserMessage, UserPresence, UserProfile
|
||||||
from zerver.models.clients import get_client
|
from zerver.models.clients import get_client
|
||||||
from zerver.models.realms import get_realm, get_realm_with_settings
|
from zerver.models.realms import get_realm, get_realm_with_settings
|
||||||
@@ -627,7 +627,7 @@ class FetchInitialStateDataTest(ZulipTestCase):
|
|||||||
self.assert_length(result["realm_bots"], 0)
|
self.assert_length(result["realm_bots"], 0)
|
||||||
|
|
||||||
# additionally the API key for a random bot is not present in the data
|
# additionally the API key for a random bot is not present in the data
|
||||||
api_key = get_api_key(self.notification_bot(user_profile.realm))
|
api_key = self.notification_bot(user_profile.realm).api_key
|
||||||
self.assertNotIn(api_key, str(result))
|
self.assertNotIn(api_key, str(result))
|
||||||
|
|
||||||
# Admin users have access to all bots in the realm_bots field
|
# Admin users have access to all bots in the realm_bots field
|
||||||
|
|||||||
@@ -48,7 +48,6 @@ from zerver.lib.upload import sanitize_name, upload_message_attachment
|
|||||||
from zerver.lib.upload.base import ZulipUploadBackend
|
from zerver.lib.upload.base import ZulipUploadBackend
|
||||||
from zerver.lib.upload.local import LocalUploadBackend
|
from zerver.lib.upload.local import LocalUploadBackend
|
||||||
from zerver.lib.upload.s3 import S3UploadBackend
|
from zerver.lib.upload.s3 import S3UploadBackend
|
||||||
from zerver.lib.users import get_api_key
|
|
||||||
from zerver.models import Attachment, Message, Realm, RealmDomain, UserProfile
|
from zerver.models import Attachment, Message, Realm, RealmDomain, UserProfile
|
||||||
from zerver.models.realms import get_realm
|
from zerver.models.realms import get_realm
|
||||||
from zerver.models.users import get_system_bot, get_user_by_delivery_email
|
from zerver.models.users import get_system_bot, get_user_by_delivery_email
|
||||||
@@ -110,7 +109,7 @@ class FileUploadTest(UploadSerializeMixin, ZulipTestCase):
|
|||||||
response = self.client_get(url, {"api_key": "invalid"})
|
response = self.client_get(url, {"api_key": "invalid"})
|
||||||
self.assertEqual(response.status_code, 401)
|
self.assertEqual(response.status_code, 401)
|
||||||
|
|
||||||
response = self.client_get(url, {"api_key": get_api_key(user_profile)})
|
response = self.client_get(url, {"api_key": user_profile.api_key})
|
||||||
self.assertEqual(response.status_code, 200)
|
self.assertEqual(response.status_code, 200)
|
||||||
self.assertEqual(response.getvalue(), b"zulip!")
|
self.assertEqual(response.getvalue(), b"zulip!")
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,6 @@ from zerver.lib.exceptions import InvalidJSONError, JsonableError
|
|||||||
from zerver.lib.send_email import FromAddress
|
from zerver.lib.send_email import FromAddress
|
||||||
from zerver.lib.test_classes import WebhookTestCase, ZulipTestCase
|
from zerver.lib.test_classes import WebhookTestCase, ZulipTestCase
|
||||||
from zerver.lib.test_helpers import HostRequestMock
|
from zerver.lib.test_helpers import HostRequestMock
|
||||||
from zerver.lib.users import get_api_key
|
|
||||||
from zerver.lib.webhooks.common import (
|
from zerver.lib.webhooks.common import (
|
||||||
INVALID_JSON_MESSAGE,
|
INVALID_JSON_MESSAGE,
|
||||||
MISSING_EVENT_HEADER_MESSAGE,
|
MISSING_EVENT_HEADER_MESSAGE,
|
||||||
@@ -74,7 +73,7 @@ class WebhooksCommonTestCase(ZulipTestCase):
|
|||||||
webhook_bot_email = "webhook-bot@zulip.com"
|
webhook_bot_email = "webhook-bot@zulip.com"
|
||||||
webhook_bot_realm = get_realm("zulip")
|
webhook_bot_realm = get_realm("zulip")
|
||||||
webhook_bot = get_user(webhook_bot_email, webhook_bot_realm)
|
webhook_bot = get_user(webhook_bot_email, webhook_bot_realm)
|
||||||
webhook_bot_api_key = get_api_key(webhook_bot)
|
webhook_bot_api_key = webhook_bot.api_key
|
||||||
request = HostRequestMock()
|
request = HostRequestMock()
|
||||||
request.POST["api_key"] = webhook_bot_api_key
|
request.POST["api_key"] = webhook_bot_api_key
|
||||||
request.host = "zulip.testserver"
|
request.host = "zulip.testserver"
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ from unittest.mock import patch
|
|||||||
import orjson
|
import orjson
|
||||||
|
|
||||||
from zerver.lib.test_classes import ZulipTestCase
|
from zerver.lib.test_classes import ZulipTestCase
|
||||||
from zerver.lib.users import get_api_key
|
|
||||||
from zerver.models.realms import get_realm
|
from zerver.models.realms import get_realm
|
||||||
from zerver.models.users import get_user
|
from zerver.models.users import get_user
|
||||||
|
|
||||||
@@ -33,7 +32,7 @@ class ZephyrTest(ZulipTestCase):
|
|||||||
email = str(self.mit_email("starnine"))
|
email = str(self.mit_email("starnine"))
|
||||||
realm = get_realm("zephyr")
|
realm = get_realm("zephyr")
|
||||||
user = get_user(email, realm)
|
user = get_user(email, realm)
|
||||||
api_key = get_api_key(user)
|
api_key = user.api_key
|
||||||
self.login_user(user)
|
self.login_user(user)
|
||||||
|
|
||||||
def ccache_mock(**kwargs: Any) -> Any:
|
def ccache_mock(**kwargs: Any) -> Any:
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ from zerver.lib.subdomains import get_subdomain, is_subdomain_root_or_alias
|
|||||||
from zerver.lib.typed_endpoint import typed_endpoint
|
from zerver.lib.typed_endpoint import typed_endpoint
|
||||||
from zerver.lib.url_encoding import append_url_query_string
|
from zerver.lib.url_encoding import append_url_query_string
|
||||||
from zerver.lib.user_agent import parse_user_agent
|
from zerver.lib.user_agent import parse_user_agent
|
||||||
from zerver.lib.users import get_api_key, get_users_for_api, is_2fa_verified
|
from zerver.lib.users import get_users_for_api, is_2fa_verified
|
||||||
from zerver.lib.utils import has_api_key_format
|
from zerver.lib.utils import has_api_key_format
|
||||||
from zerver.lib.validator import validate_login_email
|
from zerver.lib.validator import validate_login_email
|
||||||
from zerver.models import (
|
from zerver.models import (
|
||||||
@@ -463,7 +463,7 @@ def finish_desktop_flow(
|
|||||||
def finish_mobile_flow(request: HttpRequest, user_profile: UserProfile, otp: str) -> HttpResponse:
|
def finish_mobile_flow(request: HttpRequest, user_profile: UserProfile, otp: str) -> HttpResponse:
|
||||||
# For the mobile OAuth flow, we send the API key and other
|
# For the mobile OAuth flow, we send the API key and other
|
||||||
# necessary details in a redirect to a zulip:// URL scheme.
|
# necessary details in a redirect to a zulip:// URL scheme.
|
||||||
api_key = get_api_key(user_profile)
|
api_key = user_profile.api_key
|
||||||
response = create_response_for_otp_flow(
|
response = create_response_for_otp_flow(
|
||||||
api_key, otp, user_profile, encrypted_key_field_name="otp_encrypted_api_key"
|
api_key, otp, user_profile, encrypted_key_field_name="otp_encrypted_api_key"
|
||||||
)
|
)
|
||||||
@@ -1028,7 +1028,7 @@ def process_api_key_fetch_authenticate_result(
|
|||||||
process_client(request, user_profile)
|
process_client(request, user_profile)
|
||||||
RequestNotes.get_notes(request).requester_for_logs = user_profile.format_requester_for_logs()
|
RequestNotes.get_notes(request).requester_for_logs = user_profile.format_requester_for_logs()
|
||||||
|
|
||||||
api_key = get_api_key(user_profile)
|
api_key = user_profile.api_key
|
||||||
return api_key
|
return api_key
|
||||||
|
|
||||||
|
|
||||||
@@ -1204,7 +1204,7 @@ def json_fetch_api_key(
|
|||||||
):
|
):
|
||||||
raise JsonableError(_("Password is incorrect."))
|
raise JsonableError(_("Password is incorrect."))
|
||||||
|
|
||||||
api_key = get_api_key(user_profile)
|
api_key = user_profile.api_key
|
||||||
return json_success(request, data={"api_key": api_key, "email": user_profile.delivery_email})
|
return json_success(request, data={"api_key": api_key, "email": user_profile.delivery_email})
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,6 @@ from zerver.lib.exceptions import (
|
|||||||
from zerver.lib.response import json_success
|
from zerver.lib.response import json_success
|
||||||
from zerver.lib.subdomains import get_subdomain
|
from zerver.lib.subdomains import get_subdomain
|
||||||
from zerver.lib.typed_endpoint import typed_endpoint
|
from zerver.lib.typed_endpoint import typed_endpoint
|
||||||
from zerver.lib.users import get_api_key
|
|
||||||
from zerver.lib.validator import validate_login_email
|
from zerver.lib.validator import validate_login_email
|
||||||
from zerver.models import Realm, UserProfile
|
from zerver.models import Realm, UserProfile
|
||||||
from zerver.models.realms import get_realm
|
from zerver.models.realms import get_realm
|
||||||
@@ -139,7 +138,7 @@ def api_dev_fetch_api_key(request: HttpRequest, *, username: str) -> HttpRespons
|
|||||||
assert isinstance(user_profile, UserProfile)
|
assert isinstance(user_profile, UserProfile)
|
||||||
|
|
||||||
do_login(request, user_profile)
|
do_login(request, user_profile)
|
||||||
api_key = get_api_key(user_profile)
|
api_key = user_profile.api_key
|
||||||
return json_success(
|
return json_success(
|
||||||
request,
|
request,
|
||||||
data={"api_key": api_key, "email": user_profile.delivery_email, "user_id": user_profile.id},
|
data={"api_key": api_key, "email": user_profile.delivery_email, "user_id": user_profile.id},
|
||||||
|
|||||||
@@ -79,7 +79,6 @@ from zerver.lib.users import (
|
|||||||
check_valid_bot_config,
|
check_valid_bot_config,
|
||||||
check_valid_bot_type,
|
check_valid_bot_type,
|
||||||
check_valid_interface_type,
|
check_valid_interface_type,
|
||||||
get_api_key,
|
|
||||||
get_users_for_api,
|
get_users_for_api,
|
||||||
max_message_id_for_user,
|
max_message_id_for_user,
|
||||||
validate_user_custom_profile_data,
|
validate_user_custom_profile_data,
|
||||||
@@ -678,7 +677,7 @@ def add_bot_backend(
|
|||||||
|
|
||||||
notify_created_bot(bot_profile)
|
notify_created_bot(bot_profile)
|
||||||
|
|
||||||
api_key = get_api_key(bot_profile)
|
api_key = bot_profile.api_key
|
||||||
|
|
||||||
json_result = dict(
|
json_result = dict(
|
||||||
user_id=bot_profile.id,
|
user_id=bot_profile.id,
|
||||||
@@ -706,7 +705,7 @@ def get_bots_backend(request: HttpRequest, user_profile: UserProfile) -> HttpRes
|
|||||||
# Bots are supposed to have only one API key, at least for now.
|
# Bots are supposed to have only one API key, at least for now.
|
||||||
# Therefore we can safely assume that one and only valid API key will be
|
# Therefore we can safely assume that one and only valid API key will be
|
||||||
# the first one.
|
# the first one.
|
||||||
api_key = get_api_key(bot_profile)
|
api_key = bot_profile.api_key
|
||||||
|
|
||||||
return dict(
|
return dict(
|
||||||
username=bot_profile.email,
|
username=bot_profile.email,
|
||||||
|
|||||||
@@ -16,7 +16,6 @@ from zerver.lib.exceptions import JsonableError
|
|||||||
from zerver.lib.pysa import mark_sanitized
|
from zerver.lib.pysa import mark_sanitized
|
||||||
from zerver.lib.response import json_success
|
from zerver.lib.response import json_success
|
||||||
from zerver.lib.typed_endpoint import typed_endpoint
|
from zerver.lib.typed_endpoint import typed_endpoint
|
||||||
from zerver.lib.users import get_api_key
|
|
||||||
from zerver.models import UserProfile
|
from zerver.models import UserProfile
|
||||||
|
|
||||||
# Hack for mit.edu users whose Kerberos usernames don't match what they zephyr
|
# Hack for mit.edu users whose Kerberos usernames don't match what they zephyr
|
||||||
@@ -63,7 +62,7 @@ def webathena_kerberos_login(
|
|||||||
|
|
||||||
# TODO: Send these data via (say) RabbitMQ
|
# TODO: Send these data via (say) RabbitMQ
|
||||||
try:
|
try:
|
||||||
api_key = get_api_key(user_profile)
|
api_key = user_profile.api_key
|
||||||
command = [
|
command = [
|
||||||
"/home/zulip/python-zulip-api/zulip/integrations/zephyr/process_ccache",
|
"/home/zulip/python-zulip-api/zulip/integrations/zephyr/process_ccache",
|
||||||
user,
|
user,
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
from zerver.lib.test_classes import WebhookTestCase
|
from zerver.lib.test_classes import WebhookTestCase
|
||||||
from zerver.lib.users import get_api_key
|
|
||||||
|
|
||||||
|
|
||||||
class DropboxHookTests(WebhookTestCase):
|
class DropboxHookTests(WebhookTestCase):
|
||||||
@@ -20,7 +19,7 @@ class DropboxHookTests(WebhookTestCase):
|
|||||||
|
|
||||||
def test_verification_request(self) -> None:
|
def test_verification_request(self) -> None:
|
||||||
self.subscribe(self.test_user, self.CHANNEL_NAME)
|
self.subscribe(self.test_user, self.CHANNEL_NAME)
|
||||||
get_params = {"stream_name": self.CHANNEL_NAME, "api_key": get_api_key(self.test_user)}
|
get_params = {"stream_name": self.CHANNEL_NAME, "api_key": self.test_user.api_key}
|
||||||
result = self.client_get(self.url, get_params)
|
result = self.client_get(self.url, get_params)
|
||||||
self.assert_json_error(result, "Missing 'challenge' argument", 400)
|
self.assert_json_error(result, "Missing 'challenge' argument", 400)
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ from unittest.mock import patch
|
|||||||
from urllib.parse import quote, unquote
|
from urllib.parse import quote, unquote
|
||||||
|
|
||||||
from zerver.lib.test_classes import WebhookTestCase
|
from zerver.lib.test_classes import WebhookTestCase
|
||||||
from zerver.lib.users import get_api_key
|
|
||||||
|
|
||||||
|
|
||||||
class JiraHookTests(WebhookTestCase):
|
class JiraHookTests(WebhookTestCase):
|
||||||
@@ -11,7 +10,7 @@ class JiraHookTests(WebhookTestCase):
|
|||||||
WEBHOOK_DIR_NAME = "jira"
|
WEBHOOK_DIR_NAME = "jira"
|
||||||
|
|
||||||
def test_custom_channel(self) -> None:
|
def test_custom_channel(self) -> None:
|
||||||
api_key = get_api_key(self.test_user)
|
api_key = self.test_user.api_key
|
||||||
self.subscribe(self.test_user, "jira_custom")
|
self.subscribe(self.test_user, "jira_custom")
|
||||||
url = f"/api/v1/external/jira?api_key={api_key}&stream=jira_custom"
|
url = f"/api/v1/external/jira?api_key={api_key}&stream=jira_custom"
|
||||||
msg = self.send_webhook_payload(
|
msg = self.send_webhook_payload(
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ from typing_extensions import override
|
|||||||
|
|
||||||
from zerver.lib.initial_password import initial_password
|
from zerver.lib.initial_password import initial_password
|
||||||
from zerver.lib.management import ZulipBaseCommand
|
from zerver.lib.management import ZulipBaseCommand
|
||||||
from zerver.lib.users import get_api_key
|
|
||||||
|
|
||||||
|
|
||||||
class Command(ZulipBaseCommand):
|
class Command(ZulipBaseCommand):
|
||||||
@@ -32,4 +31,4 @@ class Command(ZulipBaseCommand):
|
|||||||
print(f"ERROR: {email} does not look like an email address")
|
print(f"ERROR: {email} does not look like an email address")
|
||||||
continue
|
continue
|
||||||
user = self.get_user(email, realm)
|
user = self.get_user(email, realm)
|
||||||
print(self.fmt % (email, initial_password(email), get_api_key(user)))
|
print(self.fmt % (email, initial_password(email), user.api_key))
|
||||||
|
|||||||
Reference in New Issue
Block a user