Skip to content

Commit

Permalink
Limit isGravatar domain usage
Browse files Browse the repository at this point in the history
  • Loading branch information
gius80 committed May 13, 2024
1 parent 5a7afdf commit 3886b2e
Show file tree
Hide file tree
Showing 15 changed files with 57 additions and 32 deletions.
4 changes: 2 additions & 2 deletions client/components/domains/layout/types.ts
@@ -1,5 +1,5 @@
export type TwoColumnsLayoutProps = {
className?: string;
content?: JSX.Element;
sidebar?: JSX.Element;
content?: JSX.Element | null;
sidebar?: JSX.Element | null;
};
Expand Up @@ -219,6 +219,8 @@ export const defaultDomainResponse: ResponseDomain = {
bundledPlanSubscriptionId: undefined,
canManageDnsRecords: false,
canManageNameServers: false,
canTransferToOtherSite: true,
canTransferToAnyUser: true,
cannotManageDnsRecordsReason: null,
cannotManageNameServersReason: null,
cannotUpdateContactInfoReason: null,
Expand Down
2 changes: 2 additions & 0 deletions client/lib/domains/types.ts
Expand Up @@ -63,6 +63,8 @@ export type ResponseDomain = {
cannotManageNameServersReason: string | null;
cannotUpdateContactInfoReason: string | null;
canSetAsPrimary: boolean;
canTransferToOtherSite: boolean;
canTransferToAnyUser: boolean;
canUpdateContactInfo: boolean;
connectionMode: string;
contactInfoDisclosed: boolean;
Expand Down
@@ -1,15 +1,12 @@
import { useTranslate } from 'i18n-calypso';
import { GravatarDomainCardProps } from './types';

const GravatarDomainCard = ( props: GravatarDomainCardProps ) => {
const GravatarDomainCard = () => {
const translate = useTranslate();
const { selectedDomainName } = props;

return (
<div>
<div>
<p>{ translate( 'Placeholder text for Gravatar domain card.' ) }</p>
<p>{ selectedDomainName }</p>
<p>{ translate( 'This domain is used as a custom domain for your Gravatar profile.' ) }</p>
</div>
</div>
);
Expand Down

This file was deleted.

8 changes: 3 additions & 5 deletions client/my-sites/domains/domain-management/settings/index.tsx
Expand Up @@ -206,7 +206,7 @@ const Settings = ( {

return (
<Accordion
title={ translate( 'Gravatar domain card', { textOnly: true } ) }
title={ translate( 'Gravatar profile domain', { textOnly: true } ) }
key="status"
expanded
>
Expand Down Expand Up @@ -423,8 +423,7 @@ const Settings = ( {
domain.type === domainTypes.SITE_REDIRECT ||
domain.transferStatus === transferStatus.PENDING_ASYNC ||
! domain.canManageDnsRecords ||
! domains ||
domain.isGravatarDomain
! domains
) {
return null;
}
Expand Down Expand Up @@ -698,8 +697,7 @@ const Settings = ( {
! domain ||
domain.type !== domainTypes.REGISTERED ||
domain.registrar !== 'KS_RAM' ||
! domain.canManageDnsRecords ||
domain.isGravatarDomain
! domain.canManageDnsRecords
) {
return null;
}
Expand Down
Expand Up @@ -66,6 +66,8 @@ type ErrResponse = {
const TransferPage = ( props: TransferPageProps ) => {
const dispatch = useDispatch();
const {
canTransferToAnyUser,
canTransferToOtherSite,
currentRoute,
domains,
isDomainInfoLoading,
Expand Down Expand Up @@ -118,7 +120,7 @@ const TransferPage = ( props: TransferPageProps ) => {
const renderTransferOptions = () => {
const options = [];

if ( ! isDomainOnly ) {
if ( ! isDomainOnly && canTransferToAnyUser ) {
const mainText = isMapping
? __( 'Transfer this domain connection to any administrator on this site' )
: __( 'Transfer this domain to any administrator on this site' );
Expand All @@ -139,7 +141,8 @@ const TransferPage = ( props: TransferPageProps ) => {
/>
);
} else if (
! [ 'uk', 'fr', 'ca', 'de', 'jp' ].includes( getTopLevelOfTld( selectedDomainName ) )
! [ 'uk', 'fr', 'ca', 'de', 'jp' ].includes( getTopLevelOfTld( selectedDomainName ) ) &&
canTransferToOtherSite
) {
options.push(
<ActionCard
Expand Down Expand Up @@ -175,21 +178,23 @@ const TransferPage = ( props: TransferPageProps ) => {
? __( 'Transfer this domain connection to any site you are an administrator on' )
: __( 'Transfer this domain to any site you are an administrator on' );

options.push(
<ActionCard
key="transfer-to-another-site"
buttonHref={ domainManagementTransferToOtherSite(
selectedSite?.slug,
selectedDomainName,
currentRoute
) }
// translators: Continue is a verb
buttonText={ __( 'Continue' ) }
// translators: Transfer a domain to another WordPress.com site
headerText={ __( 'To another WordPress.com site' ) }
mainText={ mainText }
/>
);
if ( canTransferToOtherSite ) {
options.push(
<ActionCard
key="transfer-to-another-site"
buttonHref={ domainManagementTransferToOtherSite(
selectedSite?.slug,
selectedDomainName,
currentRoute
) }
// translators: Continue is a verb
buttonText={ __( 'Continue' ) }
// translators: Transfer a domain to another WordPress.com site
headerText={ __( 'To another WordPress.com site' ) }
mainText={ mainText }
/>
);
}

return options.length > 0 ? <Card>{ options }</Card> : null;
};
Expand Down Expand Up @@ -443,6 +448,8 @@ const transferPageComponent = connect( ( state: AppState, ownProps: TransferPage
const siteId = getSelectedSiteId( state );
const domainInfo = getDomainWapiInfoByDomainName( state, ownProps.selectedDomainName );
return {
canTransferToAnyUser: domain?.canTransferToAnyUser ?? false,
canTransferToOtherSite: domain?.canTransferToOtherSite ?? false,
currentRoute: getCurrentRoute( state ),
isAtomic: isSiteAutomatedTransfer( state, siteId ) ?? false,
isDomainInfoLoading: ! domainInfo.hasLoadedFromServer,
Expand Down
Expand Up @@ -5,6 +5,8 @@ import type { ReactNode } from 'react';

export type TransferPageProps = {
domains: ResponseDomain[];
canTransferToOtherSite: boolean;
canTransferToAnyUser: boolean;
currentRoute: string;
errorNotice: ( notice: ReactNode, options: Record< string, unknown > ) => NoticeActionCreator;
isAtomic: boolean;
Expand Down
2 changes: 2 additions & 0 deletions client/state/sites/domains/assembler.js
Expand Up @@ -65,6 +65,8 @@ export const createSiteDomainObject = ( domain ) => {
canSetAsPrimary: Boolean( domain.can_set_as_primary ),
canManageDnsRecords: Boolean( domain.can_manage_dns_records ),
canManageNameServers: Boolean( domain.can_manage_name_servers ),
canTransferToAnyUser: Boolean( domain.can_transfer_to_any_user ),
canTransferToOtherSite: Boolean( domain.can_transfer_to_other_site ),
canUpdateContactInfo: Boolean( domain.can_update_contact_info ),
cannotManageDnsRecordsReason: domain.cannot_manage_dns_records_reason
? String( domain.cannot_manage_dns_records_reason )
Expand Down
8 changes: 8 additions & 0 deletions client/state/sites/domains/test/fixture/index.js
Expand Up @@ -37,6 +37,8 @@ export const DOMAIN_PRIMARY = {
cannotManageDnsRecordsReason: null,
cannotManageNameServersReason: null,
cannotUpdateContactInfoReason: null,
canTransferToOtherSite: true,
canTransferToAnyUser: true,
connectionMode: typeof undefined,
contactInfoDisclosed: false,
contactInfoDisclosureAvailable: false,
Expand Down Expand Up @@ -141,6 +143,8 @@ export const DOMAIN_NOT_PRIMARY = {
cannotManageDnsRecordsReason: null,
cannotUpdateContactInfoReason: null,
cannotManageNameServersReason: null,
canTransferToOtherSite: true,
canTransferToAnyUser: true,
connectionMode: typeof undefined,
contactInfoDisclosed: false,
contactInfoDisclosureAvailable: false,
Expand Down Expand Up @@ -250,6 +254,8 @@ export const REST_API_SITE_DOMAIN_FIRST = {
cannot_manage_dns_records_reason: null,
cannot_manage_name_servers_reason: null,
cannot_update_contact_info_reason: null,
can_transfer_to_any_user: true,
can_transfer_to_other_site: true,
current_user_can_add_email: true,
current_user_cannot_add_email_reason: null,
current_user_is_owner: true,
Expand Down Expand Up @@ -334,6 +340,8 @@ export const REST_API_SITE_DOMAIN_SECOND = {
cannot_manage_dns_records_reason: null,
cannot_manage_name_servers_reason: null,
cannot_update_contact_info_reason: null,
can_transfer_to_any_user: true,
can_transfer_to_other_site: true,
current_user_can_add_email: false,
current_user_cannot_add_email_reason: {
errors: {
Expand Down
2 changes: 2 additions & 0 deletions packages/data-stores/src/queries/use-site-domains-query.ts
Expand Up @@ -23,6 +23,8 @@ export interface DomainData {
current_user_can_manage: boolean;
current_user_is_owner: boolean;
can_set_as_primary: boolean;
can_transfer_to_any_user: boolean;
can_transfer_to_other_site: boolean;
domain: string;
domain_notice_states: unknown;
supports_domain_connect: unknown;
Expand Down
2 changes: 2 additions & 0 deletions packages/domains-table/src/test-utils.tsx
Expand Up @@ -74,6 +74,8 @@ export function testDomain(
cannot_manage_dns_records_reason: null,
cannot_manage_name_servers_reason: null,
cannot_update_contact_info_reason: null,
can_transfer_to_any_user: true,
can_transfer_to_other_site: true,
connection_mode: null,
current_user_can_add_email: false,
current_user_can_create_site_from_domain_only: false,
Expand Down
2 changes: 2 additions & 0 deletions packages/domains-table/src/utils/assembler.ts
Expand Up @@ -75,6 +75,8 @@ export const createSiteDomainObject = ( domain: DomainData ) => {
cannotUpdateContactInfoReason: domain.cannot_update_contact_info_reason
? String( domain.cannot_update_contact_info_reason )
: null,
canTransferToAnyUser: Boolean( domain.can_transfer_to_any_user ),
canTransferToOtherSite: Boolean( domain.can_transfer_to_other_site ),
connectionMode: String( domain.connection_mode ),
contactInfoDisclosureAvailable: Boolean( domain.contact_info_disclosure_available ),
contactInfoDisclosed: Boolean( domain.contact_info_disclosed ),
Expand Down
2 changes: 2 additions & 0 deletions packages/domains-table/src/utils/types.ts
Expand Up @@ -59,6 +59,8 @@ export type ResponseDomain = {
bundledPlanSubscriptionId: string | number | null | undefined;
canManageDnsRecords: boolean;
canManageNameServers: boolean;
canTransferToOtherSite: boolean;
canTransferToAnyUser: boolean;
cannotManageDnsRecordsReason: string | null;
cannotManageNameServersReason: string | null;
cannotUpdateContactInfoReason: string | null;
Expand Down
2 changes: 2 additions & 0 deletions packages/launchpad/src/test/lib/fixtures.ts
Expand Up @@ -223,6 +223,8 @@ export const defaultDomainResponse: any = {
cannotManageNameServersReason: null,
cannotUpdateContactInfoReason: null,
canSetAsPrimary: false,
canTransferToOtherSite: true,
canTransferToAnyUser: true,
canUpdateContactInfo: false,
connectionMode: '',
contactInfoDisclosed: false,
Expand Down

0 comments on commit 3886b2e

Please sign in to comment.