1 <?php
2 /*
3 This code is part of GOsa (https://gosa.gonicus.de)
4 Copyright (C) 2004 Fabian Hickert
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19 */
22 class passwordMethodheimdal extends passwordMethod
23 {
25 function passwordMethodheimdal(&$config)
26 {
27 $this->config= $config;
28 }
31 function is_available()
32 {
33 #TODO
34 # Check if heimdal information is available
35 # in configuration and return true/false
36 #
37 # In particular, we need the "heimdal_keygen" to feed kadmin in order to return "true".
38 #
39 return false;
40 }
43 function generate_hash($pwd)
44 {
45 $mode= "kerberos";
46 if (isset($this->config->current['KRBSASL']) && preg_match('/^true$/i', $this->config->current['KRBSASL'])){
47 $mode= "sasl";
48 }
50 return "{".$mode."}".$this->attrs['uid'][0]."@".$cfg= $this->config->data['SERVERS']['KERBEROS']['REALM'];
51 }
54 function remove_from_parent()
55 {
56 #TODO
57 # Find and remove kerberos entry below $this->dn
58 # See https://oss.gonicus.de/labs/gosa/ticket/223
59 }
62 function set_password()
63 {
64 #TODO
65 # Add or modify kerberos entry below $this->dn
66 # See https://oss.gonicus.de/labs/gosa/ticket/223
67 # Order: create entries, then call the heimdal_keygen hook with the realm (returned by generate_hash)
68 # to let it add the missing kerberos keys.
69 }
72 function get_hash_name()
73 {
74 $mode= "kerberos";
75 if (isset($this->config->current['KRBSASL']) && preg_match('/^true$/i', $this->config->current['KRBSASL'])){
76 $mode= "sasl";
77 }
78 return "$mode";
79 }
82 function is_configurable()
83 {
84 return TRUE;
85 }
88 function configure()
89 {
90 #TODO
91 # * Handle POST's from and for this dialog
92 # * Return filled template for the config sub-dialog.
93 # See https://oss.gonicus.de/labs/gosa/ticket/223
94 }
96 }
98 // vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
99 ?>