2015-04-20 7 views
0

Я хочу отображать или скрывать плагин для разных пользователей при входе в jira. У меня есть Treid ComponentManager и PluginAccessor и многие классы/интерфейсы, но не удача.включить плагин для пользователя в jira atlassian

Как это сделать через api jira.

+0

Просьба указать код и пояснить, что вы уже пробовали. – Jordumus

+0

это ваш плагин или плагин с рынка? –

+0

его собственный пользовательский плагин, который я хочу отобразить для выбранного пользователя? У меня есть treid SimpleLinkFactory, но ссылка не перенаправляется на мой пользовательский плагин. –

ответ

0

Выполнено.

В 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))); 
} 

}

Затем в главном классе сервлета отдавания плагин доступа для выбранного пользователя.

+0

Этот код имеет яркую ошибку безопасности «Bobby Tables». (Https://xkcd.com/327/). –

Смежные вопросы