Hi,
I have developed a cross product plugin to get any user input from Admin User and save that in plugin DB.
To get user input I am using form in velocity template and sending the data using post method.
<form id="admin" class="aui" action="" method="POST">
To handle that POST request, I am using servlet where Admin User Validation is implemented --
@ComponentImport
private final UserManager userManager;
@ComponentImport
private final LoginUriProvider loginUriProvider;
@ComponentImport
private final TemplateRenderer templateRenderer;
@ComponentImport
private final PluginSettingsFactory pluginSettingsFactory;
@Inject
public MyPluginServlet(UserManager userManager, LoginUriProvider loginUriProvider, TemplateRenderer templateRenderer, PluginSettingsFactory pluginSettingsFactory) {
this.userManager = userManager;
this.loginUriProvider = loginUriProvider;
this.templateRenderer = templateRenderer;
this.pluginSettingsFactory = pluginSettingsFactory;
}
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
UserProfile user = userManager.getRemoteUser(request);
Boolean isUserAdmin = userManager.isSystemAdmin(user.getUserKey());
String username = user.getUsername();
if (username == null || !isUserAdmin) {
redirectToLogin(request, response);
return;
}
templateRenderer.render("admin.vm", response.getWriter());
}
private void redirectToLogin(HttpServletRequest request, HttpServletResponse response) throws IOException {
response.sendRedirect(loginUriProvider.getLoginUri(getUri(request)).toASCIIString());
}
private URI getUri(HttpServletRequest request) {
StringBuffer builder = request.getRequestURL();
if (request.getQueryString() != null) {
builder.append("?");
builder.append(request.getQueryString());
}
return URI.create(builder.toString());
}
Now, I want the same requirement to be implemented for Jira Plugin.
As classes like UserManager and LoginUriProvider are from package com.atlassian.sal.api.user.*
How can I implement admin user validation in Jira Plugin? If SAL can be used here then which version of SAL to be used for Jira Version-7.13.0 as I am getting build failure and I think its due to non compatible versions.