Package hudson.plugins.im.bot

Source Code of hudson.plugins.im.bot.UserStatCommand

package hudson.plugins.im.bot;

import hudson.Extension;
import hudson.model.Hudson;
import hudson.model.User;
import hudson.plugins.cigame.UserScoreProperty;
import hudson.plugins.im.Sender;
import hudson.tasks.Mailer;

import java.util.Collection;
import java.util.Collections;

@Extension
public class UserStatCommand extends AbstractTextSendingCommand {

    private static final String SYNTAX = " <username>";
    private static final String HELP = SYNTAX + " - prints information about a Jenkins user";

    @Override
    public Collection<String> getCommandNames() {
        return Collections.singleton("userstat");
    }

    @Override
  protected String getReply(Bot bot, Sender sender, String[] args) {
    if (args.length < 2) {
        return giveSyntax(sender.getNickname(), args[0]);
    }
    String userName = args[1];
    User user = User.get(userName, false);
    if (user != null) {
       
        String checkPermission = checkPermission(user, sender);
        if (checkPermission != null) {
            return checkPermission;
        }
       
      StringBuilder buf = new StringBuilder();
      buf.append(userName).append(":");
     
      if (!userName.equals(user.getFullName())) {
        buf.append("\n").append("Full name: ").append(user.getFullName());
      }
     
      if (user.getDescription() != null) {
        buf.append("\n").append("Description: ").append(user.getDescription());
      }
     
      Mailer.UserProperty mailProperty = user.getProperty(Mailer.UserProperty.class);
      if (mailProperty != null) {
        buf.append("\n").append("E-mail: ").append(mailProperty.getAddress());
      }
     
//      if (Hudson.getInstance().getPlugin("jabber") != null) {
//       
//      }
     
      if (Hudson.getInstance().getPlugin("ci-game") != null) {
        UserScoreProperty property = user.getProperty(UserScoreProperty.class);
        if (property != null) {
          int score = (int) property.getScore();
          buf.append("\n").append("Current score in continuous integration game: ").append(score);
        }
      }
      return buf.toString();
    } else {
      return sender.getNickname() + ": don't know a user named " + userName;
    }
  }

  private String checkPermission(User user, Sender sender) {
        if (!user.hasPermission(Hudson.READ)) {
            return sender.getNickname() + ": you may not read that user!";
        }
        return null;
    }

    @Override
  public String getHelp() {
    return HELP;
  }

  private String giveSyntax(String sender, String cmd) {
    return sender + ": syntax is: '" + cmd +  SYNTAX + "'";
  }

}
TOP

Related Classes of hudson.plugins.im.bot.UserStatCommand

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.