/** * Approves all the currently rejected subjects */ @RequirePOST public HttpResponse doApproveAll() throws IOException { StringBuilder buf = new StringBuilder(); for (Class c : rejected.get()) { buf.append(c.getName()).append('\n'); } whitelisted.append(buf.toString()); return HttpResponses.ok(); }
/** * Approves specific callables by their names. */ @RequirePOST public HttpResponse doApprove(@QueryParameter String value) throws IOException { whitelisted.append(value); return HttpResponses.ok(); }
/** * Invalidates the update center JSON data for all the sites and force re-retrieval. * * @since 1.432 */ @RequirePOST public HttpResponse doInvalidateData() { for (UpdateSite site : sites) { site.doInvalidateData(); } return HttpResponses.ok(); }
/** * Invalidates the cached data and force retrieval. * * @since 1.432 */ @RequirePOST public HttpResponse doInvalidateData() { Jenkins.getInstance().checkPermission(Jenkins.ADMINISTER); dataTimestamp = 0; data = null; return HttpResponses.ok(); }
@Override @RequirePOST public HttpResponse doAddJobToView(@QueryParameter String name) throws IOException, ServletException { checkPermission(View.CONFIGURE); if(name==null) throw new Failure("Query parameter 'name' is required"); TopLevelItem item = resolveName(name); if (item == null) throw new Failure("Query parameter 'name' does not correspond to a known item"); if (contains(item)) return HttpResponses.ok(); add(item); owner.save(); return HttpResponses.ok(); }
@RequirePOST public HttpResponse doRevokeAllSelected(@JsonBody RevokeAllSelectedModel content) throws IOException { for (RevokeAllSelectedUserAndUuid value : content.values) { if (value.userId == null) { // special case not managed by JSONObject value.userId = "null"; } User user = User.getById(value.userId, false); if (user == null) { LOGGER.log(Level.INFO, "User not found id={0}", value.userId); } else { ApiTokenProperty apiTokenProperty = user.getProperty(ApiTokenProperty.class); if (apiTokenProperty == null) { LOGGER.log(Level.INFO, "User without apiTokenProperty found id={0}", value.userId); } else { ApiTokenStore.HashedToken revokedToken = apiTokenProperty.getTokenStore().revokeToken(value.uuid); if (revokedToken == null) { LOGGER.log(Level.INFO, "User without selected token id={0}, tokenUuid={1}", new Object[]{value.userId, value.uuid}); } else { apiTokenProperty.deleteApiToken(); user.save(); LOGGER.log(Level.INFO, "Revocation success for user id={0}, tokenUuid={1}", new Object[]{value.userId, value.uuid}); } } } } return HttpResponses.ok(); }
void execute() { if (!(project instanceof Job<?, ?>)) { throw HttpResponses.errorWithoutStack(409, "Pipeline Hook is not supported for this project"); } ACL.impersonate(ACL.SYSTEM, new TriggerNotifier(project, secretToken, Jenkins.getAuthentication()) { @Override protected void performOnPost(GitLabPushTrigger trigger) { trigger.onPost(pipelineBuildHook); } }); throw HttpResponses.ok(); }
@Override @RequirePOST public HttpResponse doRemoveJobFromView(@QueryParameter String name) throws IOException, ServletException { checkPermission(View.CONFIGURE); if(name==null) throw new Failure("Query parameter 'name' is required"); TopLevelItem item = resolveName(name); if (item==null) throw new Failure("Query parameter 'name' does not correspond to a known and readable item"); if (remove(item)) owner.save(); return HttpResponses.ok(); }
public void execute() { if (!(project instanceof Job<?, ?>)) { throw HttpResponses.errorWithoutStack(409, "Merge Request Hook is not supported for this project"); } ACL.impersonate(ACL.SYSTEM, new TriggerNotifier(project, secretToken, Jenkins.getAuthentication()) { @Override protected void performOnPost(GitLabPushTrigger trigger) { trigger.onPost(mergeRequestHook); } }); throw HttpResponses.ok(); } }
public void execute(StaplerResponse response) { if (!(project instanceof Job<?, ?>)) { throw HttpResponses.errorWithoutStack(409, "Note Hook is not supported for this project"); } ACL.impersonate(ACL.SYSTEM, new BuildWebHookAction.TriggerNotifier(project, secretToken, Jenkins.getAuthentication()) { @Override protected void performOnPost(GitLabPushTrigger trigger) { trigger.onPost(noteHook); } }); throw HttpResponses.ok(); } }
@RequirePOST public HttpResponse doRename(@AncestorInPath User u, @QueryParameter String tokenUuid, @QueryParameter String newName) throws IOException { // only current user + administrator can rename token u.checkPermission(Jenkins.ADMINISTER); if (StringUtils.isBlank(newName)) { return HttpResponses.errorJSON("The name cannot be empty"); } if(StringUtils.isBlank(tokenUuid)){ // using the web UI this should not occur return HttpResponses.errorWithoutStack(400, "The tokenUuid cannot be empty"); } ApiTokenProperty p = u.getProperty(ApiTokenProperty.class); if (p == null) { return HttpResponses.errorWithoutStack(400, "The user does not have any ApiToken yet, try generating one before."); } boolean renameOk = p.tokenStore.renameToken(tokenUuid, newName); if(!renameOk){ // that could potentially happen if the token is removed from another page // between your page loaded and your action return HttpResponses.errorJSON("No token found, try refreshing the page"); } u.save(); return HttpResponses.ok(); }
public void execute() { if (pushHook.getRepository() != null && pushHook.getRepository().getUrl() == null) { LOGGER.log(Level.WARNING, "No repository url found."); return; } if (project instanceof Job<?, ?>) { ACL.impersonate(ACL.SYSTEM, new TriggerNotifier(project, secretToken, Jenkins.getAuthentication()) { @Override protected void performOnPost(GitLabPushTrigger trigger) { trigger.onPost(pushHook); } }); throw HttpResponses.ok(); } if (project instanceof SCMSourceOwner) { ACL.impersonate(ACL.SYSTEM, new SCMSourceOwnerNotifier()); throw HttpResponses.ok(); } throw HttpResponses.errorWithoutStack(409, "Push Hook is not supported for this project"); }
@RequirePOST public synchronized HttpResponse doRenewSessionSeed(@AncestorInPath @Nonnull User u) throws IOException { u.checkPermission(Jenkins.ADMINISTER); if (DISABLE_USER_SEED) { return HttpResponses.error(404, "User seed feature is disabled"); } try (BulkChange bc = new BulkChange(u)) { UserSeedProperty p = u.getProperty(UserSeedProperty.class); p.renewSeed(); LastGrantedAuthoritiesProperty lastGranted = u.getProperty(LastGrantedAuthoritiesProperty.class); if (lastGranted != null) { lastGranted.invalidate(); } bc.commit(); } return HttpResponses.ok(); }
@RequirePOST public HttpResponse doRevoke(@AncestorInPath User u, @QueryParameter String tokenUuid) throws IOException { // only current user + administrator can revoke token u.checkPermission(Jenkins.ADMINISTER); if(StringUtils.isBlank(tokenUuid)){ // using the web UI this should not occur return HttpResponses.errorWithoutStack(400, "The tokenUuid cannot be empty"); } ApiTokenProperty p = u.getProperty(ApiTokenProperty.class); if (p == null) { return HttpResponses.errorWithoutStack(400, "The user does not have any ApiToken yet, try generating one before."); } ApiTokenStore.HashedToken revoked = p.tokenStore.revokeToken(tokenUuid); if(revoked != null){ if(revoked.isLegacy()){ // if the user revoked the API Token, we can delete it p.apiToken = null; } p.tokenStats.removeId(revoked.getUuid()); } u.save(); return HttpResponses.ok(); } }
/** * Approves all the currently rejected subjects */ @RequirePOST public HttpResponse doApproveAll() throws IOException { StringBuilder buf = new StringBuilder(); for (Class c : rejected.get()) { buf.append(c.getName()).append('\n'); } whitelisted.append(buf.toString()); return HttpResponses.ok(); }
/** * Approves specific callables by their names. */ @RequirePOST public HttpResponse doApprove(@QueryParameter String value) throws IOException { whitelisted.append(value); return HttpResponses.ok(); }
/** * Invalidates the cached data and force retrieval. * * @since 1.432 */ @RequirePOST public HttpResponse doInvalidateData() { Jenkins.getInstance().checkPermission(Jenkins.ADMINISTER); dataTimestamp = 0; return HttpResponses.ok(); }
@Override @RequirePOST public HttpResponse doAddJobToView(@QueryParameter String name) throws IOException, ServletException { checkPermission(View.CONFIGURE); if(name==null) throw new Failure("Query parameter 'name' is required"); TopLevelItem item = resolveName(name); if (item == null) throw new Failure("Query parameter 'name' does not correspond to a known item"); if (contains(item)) return HttpResponses.ok(); add(item); owner.save(); return HttpResponses.ok(); }
/** * Invalidates the update center JSON data for all the sites and force re-retrieval. * * @since 1.432 */ @RequirePOST public HttpResponse doInvalidateData() { Jenkins.getInstance().checkPermission(Jenkins.ADMINISTER); for (UpdateSite site : sites) { site.doInvalidateData(); } return HttpResponses.ok(); }
@Override @RequirePOST public HttpResponse doRemoveJobFromView(@QueryParameter String name) throws IOException, ServletException { checkPermission(View.CONFIGURE); if(name==null) throw new Failure("Query parameter 'name' is required"); TopLevelItem item = resolveName(name); if (item==null) throw new Failure("Query parameter 'name' does not correspond to a known and readable item"); if (remove(item)) owner.save(); return HttpResponses.ok(); }