Odyssey
Passmntc.prg
1 <?php
2  $monLibrary= dirname(__FILE__) . "/../library";
3  $sharedLibrary= dirname(__FILE__) . "/../../shared/library";
4  require_once("$monLibrary/cu_top.i");
5  require_once("$monLibrary/ck_hticket.i");
6 
7 $self = $_SERVER['PHP_SELF'];
8 
9  if (!CheckPerm($link, $Hu, basename($_SERVER['SCRIPT_NAME']), $_SERVER['REMOTE_ADDR'])) {
10  // ** Permissions failed
11  // ** redirect to new page
12  header("Location: /hcuadm/hcu_noperm.prg");
13  exit;
14  }
15 
16 $dms_ok=array('action'=>'string','cuname'=>'string','dav1'=>'string','dav2'=>'string');
17 
18 dms_import($dms_ok);
19 
20 if (isset($action)) {
21 $Htdavpath = "/home/httpd/etc/davpasswd";
22 $Htcommand = "/usr/bin/htpasswd -b";
23 $davmsg="";
24 $davok="";
25 $d_ret=0;
26 
27 if ($dav1 > '') {
28  if ($dav1 != $dav2) {
29  $davmsg .= "New WebDav Passwords Don't Match.<br>";
30  }
31  if (preg_match("/['\"]/",$dav1)){
32  $davmsg .= "Invalid Characters in WebDav Password.<br>";
33  }
34  if (strlen($dav1) < 4) {
35  $davmsg .= "WebDav Password must be at least 4 characters.<br>";
36  }
37  if (strlen($dav1) > 0 && !(preg_match("/\d/",$dav1)
38  && preg_match("/\D/",$dav1))) {
39  $davmsg .= "WebDav Password must contain both number and letter characters!<br>\n";}
40  if (empty($davmsg)){
41  system("$Htcommand $Htdavpath $cuname $dav1", $d_ret);
42  switch($d_ret) {
43  case 0:
44  $davok = "WebDav password saved successfully.<br>";
45  break;
46  case 1:
47  $davmsg .= "File Access error saving WebDav password.<br>";
48  break;
49  default:
50  $davmsg .= "Return code $d_ret saving WebDav password.<br>";
51  break;
52  }
53  }
54 }
55 
56  if (empty($davmsg)) {
57  $action = "OK";
58  }
59 }
60 if ("$action" != "OK"){
61 cu_header("Password Change");
62 print <<<EOF
63 <script>
64 function validate()
65 {
66  var strDav1 = document.forms[0].dav1.value;
67  var strDav2 = document.forms[0].dav2.value;
68  var strMessage = "";
69 
70  // validate user entries
71 
72  if (strDav1.length > 0 || strDav2.length > 0) {
73  if (strDav1.length < 4 || strDav1.length > 8)
74  { strMessage += 'WebDav password must be from 4 to 8 characters long.\\n';}
75  if (strDav1 != strDav2)
76  { strMessage += "WebDav passwords do not match.\\n";}
77  if (strDav1.indexOf("'") != -1 || strDav1.indexOf('"') != -1)
78  { strMessage += "Invalid Characters in WebDav password.\\n";}
79  var boolHasDigit = false;
80  var boolHasChar = false;
81  for (i=0; i < strDav1.length; i++)
82  {
83  ch = strDav1.charAt(i);
84  if (ch >= '0' && ch <= '9')
85  { boolHasDigit = true; }
86  if ((ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <='z'))
87  { boolHasChar = true; }
88  }
89  if ((boolHasDigit == false) || (boolHasChar == false))
90  { strMessage += "WebDav Password must contain both number and letter characters.\\n";}
91  }
92 
93  if (strMessage.length > 0)
94  {
95  alert(strMessage);
96  return false;
97  }
98 
99 
100  document.forms[0].submit();
101  return true;
102 
103 }
104 </script>
105 EOF;
106 print <<<EOF
107  <CENTER>
108  <FONT SIZE=+1 COLOR="#FF0000">$davok $davmsg<br></FONT>
109  <FORM ACTION="${self}?cuname=$cuname" METHOD=post>
110  <TABLE BORDER=0 width="90%" cellpadding=3 cellspacing=1 class='dmsbg'><tr><td>
111  <TABLE BORDER=0 width="100%" cellpadding=2 cellspacing=0 bgcolor=white>
112  <TR><TD CLASS="bar" align="center" colspan=3>WebDav Password Change</TD></TR>
113  <TR><TD CLASS="hdr" colspan="3"><hr></TD></TR>
114  <TR>
115  <TD CLASS="hdr" align="right">WebDav Password:</TD>
116  <TD CLASS="dtl"><INPUT NAME="dav1" TYPE="password" SIZE="10" MAXLENGTH="8"></TD>
117  <TD CLASS="dtl">Password must be from 4 to 8 characters long and contain a combination of numbers and letters</TD>
118  </TR>
119  <TR>
120  <TD CLASS="hdr" align="right">Confirm WebDav Password:</TD>
121  <TD CLASS="dtl"><INPUT NAME="dav2" TYPE="password" SIZE="10" MAXLENGTH="8"></TD>
122  <TD CLASS="dtl">Enter WebDav password again to confirm</TD>
123  </TR>
124  <TR>
125  <TD CLASS="dtl" align="right">&nbsp;</TD>
126  <TD CLASS="dtl" colspan="2">
127  <input type=hidden name="action" value="Change Password">
128  <INPUT TYPE="button" NAME="BtnSubmit" VALUE=" Change Password " onClick="validate()">
129  </TD>
130  </TR>
131  </TABLE>
132  </td></tr></table>
133  </FORM>
134  </BODY></HTML>
135 
136 EOF;
137 } else {
138  cu_header("Passwords Changed");
139  cu_message("Succeeded<br>Passwords Updated");
140  cu_footer();
141 }
142 ?>