mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-11-23 00:13:35 +01:00
Merged in patch for NIS auth - Thanks Dylan Adams <l0n@users.sourceforge.net>
This commit is contained in:
parent
265224dcbc
commit
8acd9d12e8
@ -23,6 +23,7 @@
|
|||||||
<option value="ldap"{selected_auth_type_ldap}>LDAP</option>
|
<option value="ldap"{selected_auth_type_ldap}>LDAP</option>
|
||||||
<option value="mail"{selected_auth_type_mail}>Mail</option>
|
<option value="mail"{selected_auth_type_mail}>Mail</option>
|
||||||
<option value="http"{selected_auth_type_http}>HTTP</option>
|
<option value="http"{selected_auth_type_http}>HTTP</option>
|
||||||
|
<option value="nis"{selected_auth_type_nis}>NIS</option>
|
||||||
<option value="pam"{selected_auth_type_pam}>PAM (Not Ready)</option>
|
<option value="pam"{selected_auth_type_pam}>PAM (Not Ready)</option>
|
||||||
</select>
|
</select>
|
||||||
</td>
|
</td>
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
set user preferences, admins can force preference, or set the defaults
|
set user preferences, admins can force preference, or set the defaults
|
||||||
for new accounts.
|
for new accounts.
|
||||||
- Added global config option to deny users to access grants, usefull for ISPs
|
- Added global config option to deny users to access grants, usefull for ISPs
|
||||||
|
- Merged patch for NIS auth - Thanks Dylan Adams <l0n@users.sourceforge.net>
|
||||||
|
|
||||||
[0.9.12]
|
[0.9.12]
|
||||||
- Note: These changelogs will only contain changes in the API (preferences, admin, etc)
|
- Note: These changelogs will only contain changes in the API (preferences, admin, etc)
|
||||||
|
74
phpgwapi/inc/class.auth_nis.inc.php
Normal file
74
phpgwapi/inc/class.auth_nis.inc.php
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
<?php
|
||||||
|
/**************************************************************************\
|
||||||
|
* phpGroupWare API - Auth from NIS *
|
||||||
|
* Authentication based on NIS maps *
|
||||||
|
* by Dylan Adams <dadams@jhu.edu> *
|
||||||
|
* 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__);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
Loading…
Reference in New Issue
Block a user