mirror of
https://github.com/google/nomulus
synced 2025-12-23 14:25:44 +00:00
Allow updating icannReferralEmail through the new console ui (#2525)
This commit is contained in:
@@ -132,6 +132,18 @@
|
|||||||
/>
|
/>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
|
@if((userDataService.userData()?.globalRole || 'NONE') !== "NONE") {
|
||||||
|
<mat-form-field appearance="outline">
|
||||||
|
<mat-label>ICANN Referral Email: </mat-label>
|
||||||
|
<input
|
||||||
|
matInput
|
||||||
|
type="text"
|
||||||
|
[(ngModel)]="registrarInEdit.icannReferralEmail"
|
||||||
|
[ngModelOptions]="{ standalone: true }"
|
||||||
|
/>
|
||||||
|
</mat-form-field>
|
||||||
|
}
|
||||||
|
|
||||||
<button mat-flat-button color="primary" type="submit">Save</button>
|
<button mat-flat-button color="primary" type="submit">Save</button>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ import {
|
|||||||
Registrar,
|
Registrar,
|
||||||
RegistrarService,
|
RegistrarService,
|
||||||
} from 'src/app/registrar/registrar.service';
|
} from 'src/app/registrar/registrar.service';
|
||||||
|
import { UserDataService } from 'src/app/shared/services/userData.service';
|
||||||
import { WhoisService } from './whois.service';
|
import { WhoisService } from './whois.service';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
@@ -30,6 +31,7 @@ export default class WhoisEditComponent {
|
|||||||
registrarInEdit: Registrar | undefined;
|
registrarInEdit: Registrar | undefined;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
|
public userDataService: UserDataService,
|
||||||
public whoisService: WhoisService,
|
public whoisService: WhoisService,
|
||||||
public registrarService: RegistrarService,
|
public registrarService: RegistrarService,
|
||||||
private _snackBar: MatSnackBar
|
private _snackBar: MatSnackBar
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ package google.registry.ui.server.console.settings;
|
|||||||
import static com.google.common.base.Preconditions.checkArgument;
|
import static com.google.common.base.Preconditions.checkArgument;
|
||||||
import static google.registry.persistence.transaction.TransactionManagerFactory.tm;
|
import static google.registry.persistence.transaction.TransactionManagerFactory.tm;
|
||||||
import static google.registry.request.Action.Method.POST;
|
import static google.registry.request.Action.Method.POST;
|
||||||
|
import static jakarta.servlet.http.HttpServletResponse.SC_BAD_REQUEST;
|
||||||
import static jakarta.servlet.http.HttpServletResponse.SC_FORBIDDEN;
|
import static jakarta.servlet.http.HttpServletResponse.SC_FORBIDDEN;
|
||||||
import static jakarta.servlet.http.HttpServletResponse.SC_OK;
|
import static jakarta.servlet.http.HttpServletResponse.SC_OK;
|
||||||
|
|
||||||
@@ -30,6 +31,7 @@ import google.registry.request.auth.AuthenticatedRegistrarAccessor;
|
|||||||
import google.registry.request.auth.AuthenticatedRegistrarAccessor.RegistrarAccessDeniedException;
|
import google.registry.request.auth.AuthenticatedRegistrarAccessor.RegistrarAccessDeniedException;
|
||||||
import google.registry.ui.server.console.ConsoleApiAction;
|
import google.registry.ui.server.console.ConsoleApiAction;
|
||||||
import google.registry.ui.server.registrar.ConsoleApiParams;
|
import google.registry.ui.server.registrar.ConsoleApiParams;
|
||||||
|
import java.util.Objects;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
|
||||||
@@ -65,10 +67,10 @@ public class WhoisRegistrarFieldsAction extends ConsoleApiAction {
|
|||||||
checkArgument(registrar.isPresent(), "'registrar' parameter is not present");
|
checkArgument(registrar.isPresent(), "'registrar' parameter is not present");
|
||||||
checkPermission(
|
checkPermission(
|
||||||
user, registrar.get().getRegistrarId(), ConsolePermission.EDIT_REGISTRAR_DETAILS);
|
user, registrar.get().getRegistrarId(), ConsolePermission.EDIT_REGISTRAR_DETAILS);
|
||||||
tm().transact(() -> loadAndModifyRegistrar(registrar.get()));
|
tm().transact(() -> loadAndModifyRegistrar(registrar.get(), user));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void loadAndModifyRegistrar(Registrar providedRegistrar) {
|
private void loadAndModifyRegistrar(Registrar providedRegistrar, User user) {
|
||||||
Registrar savedRegistrar;
|
Registrar savedRegistrar;
|
||||||
try {
|
try {
|
||||||
// reload to make sure the object has all the correct fields
|
// reload to make sure the object has all the correct fields
|
||||||
@@ -78,6 +80,15 @@ public class WhoisRegistrarFieldsAction extends ConsoleApiAction {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// icannReferralEmail can't be updated by partners, only by global users with
|
||||||
|
// EDIT_REGISTRAR_DETAILS permission
|
||||||
|
if (!Objects.equals(
|
||||||
|
savedRegistrar.getIcannReferralEmail(), providedRegistrar.getIcannReferralEmail())
|
||||||
|
&& !user.getUserRoles().hasGlobalPermission(ConsolePermission.EDIT_REGISTRAR_DETAILS)) {
|
||||||
|
setFailedResponse(
|
||||||
|
"Icann Referral Email update is not permitted for this user", SC_BAD_REQUEST);
|
||||||
|
}
|
||||||
|
|
||||||
Registrar newRegistrar =
|
Registrar newRegistrar =
|
||||||
savedRegistrar
|
savedRegistrar
|
||||||
.asBuilder()
|
.asBuilder()
|
||||||
@@ -86,6 +97,8 @@ public class WhoisRegistrarFieldsAction extends ConsoleApiAction {
|
|||||||
.setLocalizedAddress(providedRegistrar.getLocalizedAddress())
|
.setLocalizedAddress(providedRegistrar.getLocalizedAddress())
|
||||||
.setPhoneNumber(providedRegistrar.getPhoneNumber())
|
.setPhoneNumber(providedRegistrar.getPhoneNumber())
|
||||||
.setFaxNumber(providedRegistrar.getFaxNumber())
|
.setFaxNumber(providedRegistrar.getFaxNumber())
|
||||||
|
.setIcannReferralEmail(providedRegistrar.getIcannReferralEmail())
|
||||||
|
.setEmailAddress(providedRegistrar.getEmailAddress())
|
||||||
.build();
|
.build();
|
||||||
tm().put(newRegistrar);
|
tm().put(newRegistrar);
|
||||||
sendExternalUpdatesIfNecessary(
|
sendExternalUpdatesIfNecessary(
|
||||||
|
|||||||
@@ -104,6 +104,8 @@ public class WhoisRegistrarFieldsActionTest {
|
|||||||
ImmutableMap.of(
|
ImmutableMap.of(
|
||||||
"whoisServer",
|
"whoisServer",
|
||||||
"whois.nic.google",
|
"whois.nic.google",
|
||||||
|
"icannReferralEmail",
|
||||||
|
"lol@sloth.test",
|
||||||
"phoneNumber",
|
"phoneNumber",
|
||||||
"+1.4155552671",
|
"+1.4155552671",
|
||||||
"faxNumber",
|
"faxNumber",
|
||||||
|
|||||||
Reference in New Issue
Block a user