diff --git a/admin/templates/default/config.tpl b/admin/templates/default/config.tpl index 08352d7f10..6ff9a7988a 100644 --- a/admin/templates/default/config.tpl +++ b/admin/templates/default/config.tpl @@ -23,6 +23,7 @@ + diff --git a/phpgwapi/doc/CHANGELOG b/phpgwapi/doc/CHANGELOG index 9321f87fb0..776a5ff5dc 100644 --- a/phpgwapi/doc/CHANGELOG +++ b/phpgwapi/doc/CHANGELOG @@ -17,6 +17,7 @@ set user preferences, admins can force preference, or set the defaults for new accounts. - Added global config option to deny users to access grants, usefull for ISPs + - Merged patch for NIS auth - Thanks Dylan Adams [0.9.12] - Note: These changelogs will only contain changes in the API (preferences, admin, etc) diff --git a/phpgwapi/inc/class.auth_nis.inc.php b/phpgwapi/inc/class.auth_nis.inc.php new file mode 100644 index 0000000000..2a35c14e24 --- /dev/null +++ b/phpgwapi/inc/class.auth_nis.inc.php @@ -0,0 +1,74 @@ + * + * Copyright (C) 2001 Dylan Adams * + * -------------------------------------------------------------------------* + * This library is part of the phpGroupWare API * + * http://www.phpgroupware.org/api * + * ------------------------------------------------------------------------ * + * This library is free software; you can redistribute it and/or modify it * + * under the terms of the GNU Lesser General Public License as published by * + * the Free Software Foundation; either version 2.1 of the License, * + * or any later version. * + * This library 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 Lesser General Public License for more details. * + * You should have received a copy of the GNU Lesser General Public License * + * along with this library; if not, write to the Free Software Foundation, * + * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * + \**************************************************************************/ + + /* $Id$ */ + + class auth + { + function authenticate($username, $passwd) + { + global $phpgw_info; + + $domain = yp_get_default_domain(); + if( !empty($phpgw_info['server']['nis_domain']) ) + { + $domain = $phpgw_info['server']['nis_domain']; + } + + $map = "passwd.byname"; + if( !empty($phpgw_info['server']['nis_map']) ) + { + $map = $phpgw_info['server']['nis_map']); + } + $entry = yp_match( $domain, $map, $username ); + + /* + * we assume that the map is structured in the usual + * unix passwd flavor + */ + $entry_array = explode( ':', $entry ); + $stored_passwd = $entry_array[1]; + + $encrypted_passwd = crypt( $passwd, $stored_passwd ); + + return( $encrypted_passwd == $stored_passwd ); + } + + function change_password($old_passwd, $new_passwd, $account_id = '') + { + // can't change passwords unless server runs as root (bad idea) + return( False ); + } + + function update_lastlogin($account_id, $ip) + { + global $phpgw; + + $account_id = get_account_id($account_id); + + $phpgw->db->query("update phpgw_accounts set account_lastloginfrom='" + . "$ip', account_lastlogin='" . time() + . "' where account_id='$account_id'",__LINE__,__FILE__); + } + } +?>