import org.cacert.gigi.dbObjects.Job;
import org.cacert.gigi.dbObjects.ObjectCache;
import org.cacert.gigi.dbObjects.User;
-import org.cacert.gigi.pages.Manager;
import org.cacert.gigi.pages.account.MyDetails;
import org.cacert.gigi.pages.main.RegisterPage;
import org.cacert.gigi.testUtils.TestEmailReceiver.TestMail;
}
public static String getServerName() {
- return url;
+ return url.replaceFirst(":443$", "");
+ }
+
+ public static String getSecureServerName() {
+ return getServerName().replaceAll("^www\\.", "secure.");
}
static {
uc.addRequestProperty("Cookie", headerField);
uc.setDoOutput(true);
uc.getOutputStream().write((param + "&csrf=" + csrf).getBytes("UTF-8"));
+ if (uc.getResponseCode() == 302) {
+ return "";
+ }
String d = IOUtils.readURL(uc);
return d;
}
}
}
- public static void grant(String email, Group g) throws IOException {
- HttpURLConnection huc = (HttpURLConnection) new URL("https://" + getServerName() + Manager.PATH).openConnection();
- huc.setDoOutput(true);
- huc.getOutputStream().write(("addpriv=y&priv=" + URLEncoder.encode(g.getDatabaseName(), "UTF-8") + "&email=" + URLEncoder.encode(email, "UTF-8")).getBytes("UTF-8"));
- assertEquals(200, huc.getResponseCode());
+ public static void grant(User u, Group g) throws IOException, GigiApiException {
+ u.grantGroup(getSupporter(), g);
+ clearCaches();
}
/**
if (headerField == null) {
return "";
}
+ if (huc.getResponseCode() != 302) {
+ fail(fetchStartErrorMessage(IOUtils.readURL(huc)));
+ }
return stripCookie(headerField);
}
public static String login(final PrivateKey pk, final X509Certificate ce) throws NoSuchAlgorithmException, KeyManagementException, IOException, MalformedURLException {
- HttpURLConnection connection = (HttpURLConnection) new URL("https://" + getServerName().replaceFirst("^www.", "secure.") + "/login").openConnection();
+ HttpURLConnection connection = (HttpURLConnection) new URL("https://" + getSecureServerName() + "/login").openConnection();
authenticateClientCert(pk, ce, connection);
if (connection.getResponseCode() == 302) {
- assertEquals("https://" + getServerName().replaceFirst("^www.", "secure.").replaceFirst(":443$", "") + "/", connection.getHeaderField("Location").replaceFirst(":443$", ""));
+ assertEquals("https://" + getSecureServerName() + "/", connection.getHeaderField("Location").replaceFirst(":443$", ""));
return stripCookie(connection.getHeaderField("Set-Cookie"));
} else {
return null;
}
public static String executeBasicWebInteraction(String cookie, String path, String query, int formIndex) throws IOException, MalformedURLException, UnsupportedEncodingException {
- URLConnection uc = post(cookie, path, query, formIndex);
+ HttpURLConnection uc = post(cookie, path, query, formIndex);
+ if (uc.getResponseCode() == 302) {
+ return null;
+ }
String error = fetchStartErrorMessage(IOUtils.readURL(uc));
return error;
}
return openConnection;
}
+ private static User supporter;
+
+ public static User getSupporter() throws GigiApiException, IOException {
+ if (supporter != null) {
+ return supporter;
+ }
+ int i = createVerifiedUser("fn", "ln", createUniqueName() + "@email.com", TEST_PASSWORD);
+ try (GigiPreparedStatement ps = new GigiPreparedStatement("INSERT INTO `user_groups` SET `user`=?, `permission`=?::`userGroup`, `grantedby`=?")) {
+ ps.setInt(1, i);
+ ps.setString(2, Group.SUPPORTER.getDBName());
+ ps.setInt(3, i);
+ ps.execute();
+ }
+ clearCaches();
+ supporter = User.getById(i);
+ return supporter;
+ }
}