diff options
Diffstat (limited to 'ldap/servers/plugins/acctpolicy/acctpolicy.h')
-rw-r--r-- | ldap/servers/plugins/acctpolicy/acctpolicy.h | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/ldap/servers/plugins/acctpolicy/acctpolicy.h b/ldap/servers/plugins/acctpolicy/acctpolicy.h new file mode 100644 index 00000000..bc8ecb3a --- /dev/null +++ b/ldap/servers/plugins/acctpolicy/acctpolicy.h @@ -0,0 +1,79 @@ +/****************************************************************************** +Copyright (C) 2009 Hewlett-Packard Development Company, L.P. + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +version 2 as published by the Free Software Foundation. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + +Contributors: +Hewlett-Packard Development Company, L.P. +******************************************************************************/ + +#include "nspr.h" + +#define SLAPI_OP_FLAG_BYPASS_REFERRALS 0x40000 + +#define CFG_LASTLOGIN_STATE_ATTR "stateAttrName" +#define CFG_ALT_LASTLOGIN_STATE_ATTR "altStateAttrName" +#define CFG_SPEC_ATTR "specAttrName" +#define CFG_INACT_LIMIT_ATTR "limitAttrName" +#define CFG_RECORD_LOGIN "alwaysRecordLogin" + +#define DEFAULT_LASTLOGIN_STATE_ATTR "lastLoginTime" +#define DEFAULT_ALT_LASTLOGIN_STATE_ATTR "createTimestamp" +#define DEFAULT_SPEC_ATTR "acctPolicySubentry" +#define DEFAULT_INACT_LIMIT_ATTR "accountInactivityLimit" +#define DEFAULT_RECORD_LOGIN 1 + +#define PLUGIN_VENDOR "Hewlett-Packard Company" +#define PLUGIN_VERSION "1.0" +#define PLUGIN_CONFIG_DN "cn=config,cn=Account Policy Plugin,cn=plugins,cn=config" + +#define PLUGIN_NAME "acct-policy" +#define PLUGIN_DESC "Account Policy Plugin" +#define PRE_PLUGIN_NAME "acct-policy-preop" +#define PRE_PLUGIN_DESC "Account Policy Pre-Op Plugin" +#define POST_PLUGIN_NAME "acct-policy-postop" +#define POST_PLUGIN_DESC "Account Policy Post-Op Plugin" + +#define CALLBACK_OK 0 +#define CALLBACK_ERR -1 +#define CALLBACK_HANDLED 1 + +typedef struct acct_plugin_cfg { + char* state_attr_name; + char* alt_state_attr_name; + char* spec_attr_name; + char* limit_attr_name; + int always_record_login; +} acctPluginCfg; + +typedef struct accountpolicy { + unsigned long inactivitylimit; +} acctPolicy; + +/* acct_util.c */ +int get_acctpolicy( Slapi_PBlock *pb, Slapi_Entry *target_entry, + void *plugin_id, acctPolicy **policy ); +void free_acctpolicy( acctPolicy **policy ); +int has_attr( Slapi_Entry* target_entry, char* attr_name, + char** val ); +char* get_attr_string_val( Slapi_Entry* e, char* attr_name ); +void* get_identity(); +void set_identity(void*); +time_t gentimeToEpochtime( char *gentimestr ); +char* epochtimeToGentime( time_t epochtime ); + +/* acct_config.c */ +int acct_policy_load_config_startup( Slapi_PBlock* pb, void* plugin_id ); +acctPluginCfg* get_config(); + |