From: INOPIAE Date: Tue, 24 Jul 2018 11:44:53 +0000 (+0200) Subject: add: functionality to promote a user via test manager to RA Agent X-Git-Url: https://code.wpia.club/?p=gigi.git;a=commitdiff_plain;h=fb82805feb4ac7a4caafee498c1dd20c870fc4fc add: functionality to promote a user via test manager to RA Agent Change-Id: Ic954b854bca4c32860db2a707f9cbbe6ecb4b179 --- diff --git a/util-testing/club/wpia/gigi/pages/Manager.java b/util-testing/club/wpia/gigi/pages/Manager.java index 6cce345e..bd90d262 100644 --- a/util-testing/club/wpia/gigi/pages/Manager.java +++ b/util-testing/club/wpia/gigi/pages/Manager.java @@ -409,33 +409,16 @@ public class Manager extends Page { } int vp = 0; - int agentNumber = 0; try { - try { - vp = Integer.parseInt(verificationPoints); - } catch (NumberFormatException e) { - throw new GigiApiException("No valid Verification Points entered."); - } - - if (vp > 100) { // only allow max 100 Verification points - vp = 100; - } - - while (vp > 0) { - int currentVP = 10; - if (vp < 10) { - currentVP = vp; - } - Notary.verify(getAgent(agentNumber), byEmail, byEmail.getPreferredName(), byEmail.getDoB(), currentVP, "Testmanager Verify up code", validVerificationDateString(), VerificationType.FACE_TO_FACE, getRandomCountry()); - agentNumber += 1; - vp -= currentVP; - } - - } catch (GigiApiException e) { - throw new Error(e); + vp = Integer.parseInt(verificationPoints); + } catch (NumberFormatException e) { + resp.getWriter().println("No valid Verification Points entered.
"); + vp = 0; } + int agentNumber = addVerificationPoints(vp, byEmail); + resp.getWriter().println("User has been verified " + agentNumber + " times."); } else if (req.getParameter("letverify") != null) { @@ -503,10 +486,54 @@ public class Manager extends Page { pingExempt.remove(dom); resp.getWriter().println("Updated domains exempt from pings. Current set:
"); resp.getWriter().println(HTMLEncoder.encodeHTML(pingExempt.toString())); + } else if (req.getParameter("makeAgent") != null) { + User u = User.getByEmail(req.getParameter("agentEmail")); + if (u == null) { + resp.getWriter().println("User not found, or found user is not allowed to verify."); + } else { + if (u.getVerificationPoints() < 100) { + addVerificationPoints(100, u); + } + if ( !u.hasPassedCATS()) { + passCATS(u, CATSType.AGENT_CHALLENGE); + } + if ( !Contract.hasSignedContract(u, Contract.ContractType.RA_AGENT_CONTRACT)) { + try { + new Contract(u, Contract.ContractType.RA_AGENT_CONTRACT); + } catch (GigiApiException e) { + throw new Error(e); + } + } + resp.getWriter().println("User has all requirements to be an RA Agent"); + } } resp.getWriter().println("
Go back"); } + private int addVerificationPoints(int vp, User byEmail) throws Error { + int agentNumber = 0; + + try { + if (vp > 100) { // only allow max 100 Verification points + vp = 100; + } + + while (vp > 0) { + int currentVP = 10; + if (vp < 10) { + currentVP = vp; + } + Notary.verify(getAgent(agentNumber), byEmail, byEmail.getPreferredName(), byEmail.getDoB(), currentVP, "Testmanager Verify up code", validVerificationDateString(), VerificationType.FACE_TO_FACE, getRandomCountry()); + agentNumber += 1; + vp -= currentVP; + } + + } catch (GigiApiException e) { + throw new Error(e); + } + return agentNumber; + } + private void fetchMails(HttpServletRequest req, HttpServletResponse resp, String mail) throws IOException { final LinkedList mails = emails.get(mail); HashMap vars = new HashMap<>(); diff --git a/util-testing/club/wpia/gigi/pages/Manager.templ b/util-testing/club/wpia/gigi/pages/Manager.templ index 857a6d18..89627aee 100644 --- a/util-testing/club/wpia/gigi/pages/Manager.templ +++ b/util-testing/club/wpia/gigi/pages/Manager.templ @@ -52,6 +52,17 @@ Email: + + + +Make RA Agent: + +Email: + +Current requirements: 100 VP, passed Assurer Challenge, signed RA Agent Contract
+ + + Add 100 Verification Points: @@ -59,7 +70,6 @@ Email: Verification Points to issue to preferred name:
-