X-Git-Url: https://code.wpia.club/?a=blobdiff_plain;f=src%2Fclub%2Fwpia%2Fgigi%2Fpages%2Faccount%2FMyDetailsForm.java;h=0f775b9d2b4b97d680e91cb901e84f6a36e2e7ec;hb=321275b98020a0bc4e26369296cc60fb85c15c23;hp=13d038808fb5c050b32539cf076ce15cc63750ba;hpb=c6c14350d688b0bb35ee68e85003b7cb54f34826;p=gigi.git diff --git a/src/club/wpia/gigi/pages/account/MyDetailsForm.java b/src/club/wpia/gigi/pages/account/MyDetailsForm.java index 13d03880..0f775b9d 100644 --- a/src/club/wpia/gigi/pages/account/MyDetailsForm.java +++ b/src/club/wpia/gigi/pages/account/MyDetailsForm.java @@ -7,6 +7,7 @@ import java.util.Set; import javax.servlet.http.HttpServletRequest; import club.wpia.gigi.GigiApiException; +import club.wpia.gigi.dbObjects.Contract; import club.wpia.gigi.dbObjects.Group; import club.wpia.gigi.dbObjects.Name; import club.wpia.gigi.dbObjects.User; @@ -19,6 +20,7 @@ import club.wpia.gigi.output.GroupSelector; import club.wpia.gigi.output.NameInput; import club.wpia.gigi.output.template.Form; import club.wpia.gigi.output.template.Template; +import club.wpia.gigi.util.ServerConstants; public class MyDetailsForm extends Form { @@ -30,6 +32,8 @@ public class MyDetailsForm extends Form { private static final Template roles = new Template(MyDetailsForm.class.getResource("MyDetailsRoles.templ")); + private static final Template contracts = new Template(MyDetailsForm.class.getResource("MyDetailsContracts.templ")); + private User target; private DateSelector ds; @@ -110,6 +114,17 @@ public class MyDetailsForm extends Form { target.revokeGroup(target, toMod); } return new RedirectResult(MyDetails.PATH); + } else if ("viewContract".equals(action)) { + return new RedirectResult(MyContracts.PATH); + } else if ("signContract".equals(action)) { + new Contract(target, Contract.ContractType.RA_AGENT_CONTRACT); + return new RedirectResult(MyDetails.PATH); + } else if ("revokeContract".equals(action)) { + Contract c = Contract.getRAAgentContractByUser(target); + if (c != null) { + c.revokeContract(); + } + return new RedirectResult(MyDetails.PATH); } else { throw new GigiApiException("Invalid action."); } @@ -161,6 +176,13 @@ public class MyDetailsForm extends Form { vars.put("groups", new GroupList(gr, false)); vars.put("groupSelector", selectedGroup); roles.output(out, l, vars); + + if ( !ServerConstants.isCommunityCA()) { + boolean hasSignedContract = Contract.hasSignedContract(target, Contract.ContractType.RA_AGENT_CONTRACT); + vars.put("contractsign", hasSignedContract ? "disabled" : ""); + vars.put("contractrevoke", hasSignedContract ? "" : "disabled"); + contracts.output(out, l, vars); + } } }