mirror of
https://github.com/zulip/zulip.git
synced 2025-11-05 22:43:42 +00:00
change the names of "github" and "twitter" external account fields to "GitHub username" and "Twitter username" respectively and remove the hints of them.
54 lines
1.8 KiB
Python
54 lines
1.8 KiB
Python
"""
|
|
This module stores data for "external account" custom profile field.
|
|
"""
|
|
from django.core.exceptions import ValidationError
|
|
from django.utils.translation import gettext as _
|
|
|
|
from zerver.lib.types import ProfileFieldData
|
|
from zerver.lib.validator import (
|
|
check_dict_only,
|
|
check_external_account_url_pattern,
|
|
check_required_string,
|
|
)
|
|
|
|
# Default external account fields are by default available
|
|
# to realm admins, where realm admin only need to select
|
|
# the default field and other values(i.e. name, url) will be
|
|
# fetch from this dictionary.
|
|
# text: Field text for admins - custom profile field in org settings view
|
|
# name: Field label or name - user profile in user settings view
|
|
# hint: Field hint for realm users
|
|
# url_pattern: Field URL linkifier
|
|
DEFAULT_EXTERNAL_ACCOUNTS = {
|
|
"twitter": {
|
|
"text": "Twitter",
|
|
"url_pattern": "https://twitter.com/%(username)s",
|
|
"name": "Twitter username",
|
|
"hint": "",
|
|
},
|
|
"github": {
|
|
"text": "GitHub",
|
|
"url_pattern": "https://github.com/%(username)s",
|
|
"name": "GitHub username",
|
|
"hint": "",
|
|
},
|
|
}
|
|
|
|
|
|
def validate_external_account_field_data(field_data: ProfileFieldData) -> ProfileFieldData:
|
|
field_validator = check_dict_only(
|
|
[("subtype", check_required_string)],
|
|
[("url_pattern", check_external_account_url_pattern)],
|
|
)
|
|
field_validator("field_data", field_data)
|
|
|
|
field_subtype = field_data.get("subtype")
|
|
if field_subtype not in DEFAULT_EXTERNAL_ACCOUNTS.keys():
|
|
if field_subtype == "custom":
|
|
if "url_pattern" not in field_data.keys():
|
|
raise ValidationError(_("Custom external account must define URL pattern"))
|
|
else:
|
|
raise ValidationError(_("Invalid external account type"))
|
|
|
|
return field_data
|