package hudson.plugins.favorite.column; import hudson.Extension; import hudson.model.Descriptor; import hudson.model.Hudson; import hudson.model.User; import hudson.plugins.favorite.user.FavoriteUserProperty; import hudson.views.ListViewColumn; import net.sf.json.JSONObject; import org.acegisecurity.Authentication; import org.kohsuke.stapler.DataBoundConstructor; import org.kohsuke.stapler.StaplerRequest; public class FavoriteColumn extends ListViewColumn { @DataBoundConstructor public FavoriteColumn() { } @Extension public static final Descriptor<ListViewColumn> DESCRIPTOR = new DescriptorImpl(); @Override public Descriptor<ListViewColumn> getDescriptor() { return DESCRIPTOR; } private static class DescriptorImpl extends Descriptor<ListViewColumn> { @Override public ListViewColumn newInstance(StaplerRequest req, JSONObject formData) throws FormException { return new FavoriteColumn(); } public String getDisplayName() { return "Favorite"; } } public String getStar(String job) { Authentication authentication = Hudson.getAuthentication(); String name = authentication.getName(); User user = Hudson.getInstance().getUser(name); FavoriteUserProperty fup = user.getProperty(FavoriteUserProperty.class); if (fup == null || !fup.isJobFavorite(job)) { return "star.gif"; } else { return "star-gold.gif"; } } public boolean isLoggedIn() { Authentication authentication = Hudson.getAuthentication(); if (authentication.getName().equals("anonymous")) { return false; } else { return true; } } }