0
我想在不同用戶登錄jira時顯示或隱藏插件。 我有treed ComponentManager和PluginAccessor和許多類/接口,但沒有運氣。爲jira atlassian啓用用戶插件
如何通過jira的api來做到這一點。
我想在不同用戶登錄jira時顯示或隱藏插件。 我有treed ComponentManager和PluginAccessor和許多類/接口,但沒有運氣。爲jira atlassian啓用用戶插件
如何通過jira的api來做到這一點。
完成。
在Atlassian的-plugin.xml中,提供網絡項目一樣的條件,
<conditions type="OR">
<condition
class="com.atlassian.jira.plugin.webfragment.conditions.JiraGlobalPermissionCondition">
<param name="permission">admin</param>
</condition>
<condition
class="in.componence.jira.plugin.condition.UserLoggedInIsInGroupCondition">
</condition>
</conditions>
在UserLoggedInIsInGroupCondition,
public class UserLoggedInIsInGroupCondition extends UserLoggedInCondition {
private final UserManager userManager;
PropertySet propertySet = ComponentAccessor.getComponent(PropertiesManager.class).getPropertySet();
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
public UserLoggedInIsInGroupCondition(UserManager userManager) {
this.userManager = userManager;
}
public boolean shouldDisplay(com.atlassian.crowd.embedded.api.User user,
JiraHelper jiraHelper) {
if(user != null){
try {
conn = new DefaultOfBizConnectionFactory().getConnection();
stmt = conn.createStatement();
String userName = user.getDisplayName();
String sql = "select PARENT_NAME from cwd_membership where CHILD_NAME='"+userName.toLowerCase()+"'";
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()){
String rsGU = rs.getString("PARENT_NAME")+":"+user.getDisplayName();
String str = propertySet.getString("partner.groupuser");
str = str.replace("[", "");
str = str.replace("]", "");
String[] arrGU = str.split(",");
for(int i=0; i<arrGU.length; i++){
if(rsGU.trim()==arrGU[i].trim() || rsGU.trim().equals(arrGU[i].trim())){
return true;
}
}
}
} catch (DataAccessException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}finally{
try {
if(conn!=null){ conn.close(); }
if(stmt!=null){ stmt.close(); }
if(rs!=null){ rs.close(); }
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return (super.shouldDisplay(user, jiraHelper) && (userManager
.isUserInGroup(user.getName(), DataSourceUtil.GROUP_NAME)));
}
}
然後在你的主servlet類給予插件訪問到選定的用戶。
此代碼有一個明顯的「Bobby Tables」安全漏洞。 (https://xkcd.com/327/)。 –
請提供一些你已經嘗試過的代碼/解釋。 – Jordumus
它是你的插件或市場插件? –
我的自定義插件,我想爲選定的用戶顯示?我也使用SimpleLinkFactory,但鏈接不會重定向到我的自定義插件 –