server/src/jetbrains/buildServer/vsoRooms/notificator/VSOUserProperties.java (71 lines of code) (raw):
package jetbrains.buildServer.vsoRooms.notificator;
import jetbrains.buildServer.serverSide.UserPropertyInfo;
import jetbrains.buildServer.users.NotificatorPropertyKey;
import jetbrains.buildServer.users.SUser;
import jetbrains.buildServer.users.User;
import jetbrains.buildServer.vsoRooms.Constants;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.ArrayList;
import java.util.List;
/**
* @author Evgeniy.Koshkin
*/
public class VSOUserProperties {
private static final String VSO_ACCOUNT_USER_PROPERTY_NAME = "vso-account";
private static final String VSO_TEAM_ROOM_NAME_USER_PROPERTY_NAME = "vso-team-room-name";
private static final String VSO_USERNAME_USER_PROPERTY_NAME = "vso-username";
private static final String VSO_PASSWORD_USER_PROPERTY_NAME = "vso-password";
private static final String VSO_USER_DISPLAY_NAME_USER_PROPERTY_NAME = "vso-user-display-name";
public final static List<UserPropertyInfo> USER_PROPERTIES = new ArrayList<UserPropertyInfo>();
static {
USER_PROPERTIES.add(new UserPropertyInfo(VSO_ACCOUNT_USER_PROPERTY_NAME, "Account"));
USER_PROPERTIES.add(new UserPropertyInfo(VSO_TEAM_ROOM_NAME_USER_PROPERTY_NAME, "Team Room Name"));
USER_PROPERTIES.add(new UserPropertyInfo(VSO_USERNAME_USER_PROPERTY_NAME, "Username"));
USER_PROPERTIES.add(new UserPropertyInfo(VSO_PASSWORD_USER_PROPERTY_NAME, "Password"));
//USER_PROPERTIES.add(new UserPropertyInfo(VSO_USER_DISPLAY_NAME_USER_PROPERTY_NAME, " My User Display Name (optional)"));
}
private static final NotificatorPropertyKey ourVSOAccountUserPropKey = new NotificatorPropertyKey(Constants.NOTIFICATOR_TYPE, VSO_ACCOUNT_USER_PROPERTY_NAME);
private static final NotificatorPropertyKey ourVSOTeamRoomNameUserPropKey = new NotificatorPropertyKey(Constants.NOTIFICATOR_TYPE, VSO_TEAM_ROOM_NAME_USER_PROPERTY_NAME);
private static final NotificatorPropertyKey ourUsernameUserPropKey = new NotificatorPropertyKey(Constants.NOTIFICATOR_TYPE, VSO_USERNAME_USER_PROPERTY_NAME);
private static final NotificatorPropertyKey ourPasswordUserPropKey = new NotificatorPropertyKey(Constants.NOTIFICATOR_TYPE, VSO_PASSWORD_USER_PROPERTY_NAME);
private static final NotificatorPropertyKey ourUserDisplayNameUserPropKey = new NotificatorPropertyKey(Constants.NOTIFICATOR_TYPE, VSO_USER_DISPLAY_NAME_USER_PROPERTY_NAME);
@Nullable
public static String getAccount(@NotNull final User tcUser){
return tcUser.getPropertyValue(ourVSOAccountUserPropKey);
}
public static void setAccount(@NotNull final SUser tcUser, @NotNull final String account) {
tcUser.setUserProperty(ourVSOAccountUserPropKey, account);
}
@Nullable
public static String getTeamRoomName(@NotNull final User tcUser) {
return tcUser.getPropertyValue(ourVSOTeamRoomNameUserPropKey);
}
public static void setTeamRoomName(@NotNull final SUser tcUser, @NotNull final String teamRoomName) {
tcUser.setUserProperty(ourVSOTeamRoomNameUserPropKey, teamRoomName);
}
@Nullable
public static String getUsername(@NotNull final User tcUser) {
return tcUser.getPropertyValue(ourUsernameUserPropKey);
}
public static void setUsername(@NotNull final SUser tcUser, @NotNull final String username) {
tcUser.setUserProperty(ourUsernameUserPropKey, username);
}
@Nullable
public static String getPassword(@NotNull final User tcUser) {
return tcUser.getPropertyValue(ourPasswordUserPropKey);
}
public static void setPassword(@NotNull final SUser tcUser, @NotNull final String password) {
tcUser.setUserProperty(ourPasswordUserPropKey, password);
}
@Nullable
public static String getUserDisplayName(@NotNull final User tcUser){
return tcUser.getPropertyValue(ourUserDisplayNameUserPropKey);
}
public static boolean isTargetTeamRoomConfigured(@NotNull User user) {
final String vsoAccount = user.getPropertyValue(new NotificatorPropertyKey(Constants.NOTIFICATOR_TYPE, VSO_ACCOUNT_USER_PROPERTY_NAME));
final String teamRoomName = user.getPropertyValue(new NotificatorPropertyKey(Constants.NOTIFICATOR_TYPE, VSO_TEAM_ROOM_NAME_USER_PROPERTY_NAME));
return vsoAccount != null && !vsoAccount.isEmpty() && teamRoomName != null && !teamRoomName.isEmpty();
}
public static boolean isCredentialsConfigured(@NotNull User user) {
final String userName = user.getPropertyValue(new NotificatorPropertyKey(Constants.NOTIFICATOR_TYPE, VSO_USERNAME_USER_PROPERTY_NAME));
final String password = user.getPropertyValue(new NotificatorPropertyKey(Constants.NOTIFICATOR_TYPE, VSO_PASSWORD_USER_PROPERTY_NAME));
return userName != null && !userName.isEmpty() && password != null && !password.isEmpty();
}
}