001 /* 002 * CDDL HEADER START 003 * 004 * The contents of this file are subject to the terms of the 005 * Common Development and Distribution License, Version 1.0 only 006 * (the "License"). You may not use this file except in compliance 007 * with the License. 008 * 009 * You can obtain a copy of the license at 010 * trunk/opends/resource/legal-notices/OpenDS.LICENSE 011 * or https://OpenDS.dev.java.net/OpenDS.LICENSE. 012 * See the License for the specific language governing permissions 013 * and limitations under the License. 014 * 015 * When distributing Covered Code, include this CDDL HEADER in each 016 * file and include the License file at 017 * trunk/opends/resource/legal-notices/OpenDS.LICENSE. If applicable, 018 * add the following below this CDDL HEADER, with the fields enclosed 019 * by brackets "[]" replaced with your own identifying information: 020 * Portions Copyright [yyyy] [name of copyright owner] 021 * 022 * CDDL HEADER END 023 * 024 * 025 * Copyright 2006-2008 Sun Microsystems, Inc. 026 */ 027 package org.opends.server.types; 028 029 030 031 import static org.opends.server.util.StaticUtils.*; 032 033 034 035 /** 036 * This class implements an enumeration that holds the possible event 037 * types that can trigger an account status notification. 038 */ 039 @org.opends.server.types.PublicAPI( 040 stability=org.opends.server.types.StabilityLevel.VOLATILE, 041 mayInstantiate=false, 042 mayExtend=false, 043 mayInvoke=true) 044 public enum AccountStatusNotificationType 045 { 046 /** 047 * Indicates that an account status message should be generated 048 * whenever a user account has been temporarily locked after too 049 * many failed attempts. 050 */ 051 ACCOUNT_TEMPORARILY_LOCKED("account-temporarily-locked"), 052 053 054 055 /** 056 * Indicates that an account status message should be generated 057 * whenever a user account has been permanently locked after too 058 * many failed attempts. 059 */ 060 ACCOUNT_PERMANENTLY_LOCKED( 061 "account-permanently-locked"), 062 063 064 065 /** 066 * Indicates that an account status message should be generated 067 * whenever a user account has been unlocked by an administrator. 068 */ 069 ACCOUNT_UNLOCKED("account-unlocked"), 070 071 072 073 /** 074 * Indicates that an account status message should be generated 075 * whenever a user account has been locked because it was idle for 076 * too long. 077 */ 078 ACCOUNT_IDLE_LOCKED("account-idle-locked"), 079 080 081 082 /** 083 * Indicates that an account status message should be generated 084 * whenever a user account has been locked because it the password 085 * had been reset by an administrator but not changed by the user 086 * within the required interval. 087 */ 088 ACCOUNT_RESET_LOCKED("account-reset-locked"), 089 090 091 092 /** 093 * Indicates that an account status message should be generated 094 * whenever a user account has been disabled by an administrator. 095 */ 096 ACCOUNT_DISABLED("account-disabled"), 097 098 099 100 /** 101 * Indicates that an account status message should be generated 102 * whenever a user account has been enabled by an administrator. 103 */ 104 ACCOUNT_ENABLED("account-enabled"), 105 106 107 108 /** 109 * Indicates that an account status message should be generated 110 * whenever a user authentication has failed because the account 111 * has expired. 112 */ 113 ACCOUNT_EXPIRED("account-expired"), 114 115 116 117 /** 118 * Indicates that an account status notification message should be 119 * generated whenever a user authentication has failed because the 120 * password has expired. 121 */ 122 PASSWORD_EXPIRED("password-expired"), 123 124 125 126 127 /** 128 * Indicates that an account status notification message should be 129 * generated the first time that a password expiration warning is 130 * encountered for a user password. 131 */ 132 PASSWORD_EXPIRING("password-expiring"), 133 134 135 136 /** 137 * Indicates that an account status notification message should be 138 * generated whenever a user's password is reset by an 139 * administrator. 140 */ 141 PASSWORD_RESET("password-reset"), 142 143 144 145 /** 146 * Indicates whether an account status notification message should 147 * be generated whenever a user changes his/her own password. 148 */ 149 PASSWORD_CHANGED("password-changed"); 150 151 152 153 // The notification type name. 154 private String name; 155 156 157 158 /** 159 * Creates a new account status notification type with the provided 160 * name. 161 * 162 * @param name The name for this account status notification type. 163 */ 164 private AccountStatusNotificationType(String name) 165 { 166 this.name = name; 167 } 168 169 170 171 /** 172 * Retrieves the account status notification type with the specified 173 * name. 174 * 175 * @param name The name for the account status notification type 176 * to retrieve. 177 * 178 * @return The requested account status notification type, or 179 * <CODE>null</CODE> if there is no type with the given 180 * name. 181 */ 182 public static AccountStatusNotificationType typeForName(String name) 183 { 184 String lowerName = toLowerCase(name); 185 if (lowerName.equals("account-temporarily-locked")) 186 { 187 return ACCOUNT_TEMPORARILY_LOCKED; 188 } 189 else if (lowerName.equals("account-permanently-locked")) 190 { 191 return ACCOUNT_PERMANENTLY_LOCKED; 192 } 193 else if (lowerName.equals("account-unlocked")) 194 { 195 return ACCOUNT_UNLOCKED; 196 } 197 else if (lowerName.equals("account-idle-locked")) 198 { 199 return ACCOUNT_IDLE_LOCKED; 200 } 201 else if (lowerName.equals("account-reset-locked")) 202 { 203 return ACCOUNT_RESET_LOCKED; 204 } 205 else if (lowerName.equals("account-disabled")) 206 { 207 return ACCOUNT_DISABLED; 208 } 209 else if (lowerName.equals("account-enabled")) 210 { 211 return ACCOUNT_ENABLED; 212 } 213 else if (lowerName.equals("account-expired")) 214 { 215 return ACCOUNT_EXPIRED; 216 } 217 else if (lowerName.equals("password-expired")) 218 { 219 return PASSWORD_EXPIRED; 220 } 221 else if (lowerName.equals("password-expiring")) 222 { 223 return PASSWORD_EXPIRING; 224 } 225 else if (lowerName.equals("password-reset")) 226 { 227 return PASSWORD_RESET; 228 } 229 else if (lowerName.equals("password-changed")) 230 { 231 return PASSWORD_CHANGED; 232 } 233 else 234 { 235 return null; 236 } 237 } 238 239 240 241 /** 242 * Retrieves the name for this account status notification type. 243 * 244 * @return The name for this account status notification type. 245 */ 246 public String getName() 247 { 248 return name; 249 } 250 251 252 253 /** 254 * Retrieves a string representation of this account status 255 * notification type. 256 * 257 * @return A string representation of this account status 258 * notification type. 259 */ 260 public String toString() 261 { 262 return name; 263 } 264 } 265