diff options
-rw-r--r-- | includes/account.php | 34 | ||||
-rw-r--r-- | pages/account/18.php | 179 | ||||
-rw-r--r-- | pages/account/22.php | 163 |
3 files changed, 288 insertions, 88 deletions
diff --git a/includes/account.php b/includes/account.php index 2addca1..f28cf49 100644 --- a/includes/account.php +++ b/includes/account.php @@ -1540,6 +1540,7 @@ $query = "insert into `orgemailcerts` set `CN`='$defaultemail', + `ou`='".$_SESSION['_config']['OU']."', `keytype`='NS', `orgid`='".$org['orgid']."', `created`=FROM_UNIXTIME(UNIX_TIMESTAMP()), @@ -1630,6 +1631,7 @@ $query = "insert into `orgemailcerts` set `CN`='$defaultemail', + `ou`='".$_SESSION['_config']['OU']."', `keytype`='" . sanitizeHTML($_REQUEST['keytype']) . "', `orgid`='".$org['orgid']."', `created`=FROM_UNIXTIME(UNIX_TIMESTAMP()), @@ -1705,6 +1707,7 @@ $query = "insert into `orgemailcerts` set `orgid`='".$row['orgid']."', `CN`='".$row['CN']."', + `ou`='".$row['ou']."', `subject`='".$row['subject']."', `keytype`='".$row['keytype']."', `csr_name`='".$row['csr_name']."', @@ -1821,6 +1824,21 @@ exit; } + if($oldid == 18 && array_key_exists('filter',$_REQUEST) && $_REQUEST['filter']!= "") + { + $id=18; + $_SESSION['_config']['orgfilterid']=$_REQUEST['orgfilterid']; + $_SESSION['_config']['sorting']=$_REQUEST['sorting']; + $_SESSION['_config']['status']=$_REQUEST['status']; + } + + if($oldid == 18 && array_key_exists('reset',$_REQUEST) && $_REQUEST['reset']!= "") + { + $id=18; + $_SESSION['_config']['orgfilterid']=0; + $_SESSION['_config']['sorting']=0; + $_SESSION['_config']['status']=0; + } if($process != "" && $oldid == 20) { @@ -2177,6 +2195,22 @@ exit; } + if($oldid == 22 && array_key_exists('filter',$_REQUEST) && $_REQUEST['filter']!= "") + { + $id=22; + $_SESSION['_config']['dorgfilterid']=$_REQUEST['dorgfilterid']; + $_SESSION['_config']['dsorting']=$_REQUEST['dsorting']; + $_SESSION['_config']['dstatus']=$_REQUEST['dstatus']; + } + + if($oldid == 22 && array_key_exists('reset',$_REQUEST) && $_REQUEST['reset']!= "") + { + $id=22; + $_SESSION['_config']['dorgfilterid']=0; + $_SESSION['_config']['dsorting']=0; + $_SESSION['_config']['dstatus']=0; + } + if(($id == 24 || $oldid == 24 || $id == 25 || $oldid == 25 || $id == 26 || $oldid == 26 || $id == 27 || $oldid == 27 || $id == 28 || $oldid == 28 || $id == 29 || $oldid == 29 || diff --git a/pages/account/18.php b/pages/account/18.php index 2fbb8b4..9ab13b2 100644 --- a/pages/account/18.php +++ b/pages/account/18.php @@ -14,62 +14,143 @@ 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 -*/ ?> -<? $viewall=0; if(array_key_exists('viewall',$_REQUEST)) $viewall=intval($_REQUEST['viewall']); ?> +*/ + +$orgfilterid = array_key_exists('orgfilterid',$_SESSION['_config']) ? intval($_SESSION['_config']['orgfilterid']) : 0; +$sorting = array_key_exists('sorting',$_SESSION['_config']) ? intval($_SESSION['_config']['sorting']) : 0; +$status = array_key_exists('status',$_SESSION['_config']) ? intval($_SESSION['_config']['status']) : 0; +?> <form method="post" action="account.php"> <table align="center" valign="middle" border="0" cellspacing="0" cellpadding="0" class="wrapper"> <tr> - <td colspan="8" class="title"><?=_("Client Certificates")?> - <a href="account.php?id=18&viewall=<?=!$viewall?>"><?=_("View all certificates")?></a></td> + <td colspan="9" class="title"><?=_("Organisation Client Certificates")?> </td> </tr> <tr> - <td class="DataTD"><?=_("Renew/Revoke/Delete")?></td> - <td class="DataTD"><?=_("Status")?></td> - <td class="DataTD"><?=_("CommonName")?></td> - <td class="DataTD"><?=_("SerialNumber")?></td> - <td class="DataTD"><?=_("Comment")?></td> - <td class="DataTD"><?=_("Revoked")?></td> - <td class="DataTD"><?=_("Expires")?></td> + <td colspan="9" class="title"><?=_("Filter/Sorting")?></td> + </tr> + <tr> + <td class="DataTD"><?=_("Organisation")?></td> + <td colspan="8" class="DataTD" > + <select name="orgfilterid"> + <?=sprintf('<option value="%d"%s>%s</option>',0, 0 == $orgfilterid ? " selected" : "" ,_("All")) ?> +<? $query = "select `orginfo`.`O`, `orginfo`.`id` + from `org`, `orginfo` + where `org`.`memid`='".intval($_SESSION['profile']['id'])."' and `orginfo`.`id` = `org`.`orgid` + ORDER BY `orginfo`.`O` "; + $reso = mysql_query($query); + if(mysql_num_rows($reso) >= 1){ + while($row = mysql_fetch_assoc($reso)){ + printf('<option value="%d"%s>%s</option>',$row['id'], $row['id'] == $orgfilterid ? " selected" : "" , $row['O']); + } + }?> + </select> + </td> + </tr> + <tr> + <td class="DataTD"><?=_("Sorting")?></td> + <td colspan="8" class="DataTD" > + <select name="sorting"> + <?=sprintf('<option value="%d"%s>%s</option>',0, 0 == $sorting ? " selected" : "" ,_("expire date (desc)")) ?> + <?=sprintf('<option value="%d"%s>%s</option>',1, 1 == $sorting ? " selected" : "" ,_("OU, expire date (desc)")) ?> + <?=sprintf('<option value="%d"%s>%s</option>',2, 2 == $sorting ? " selected" : "" ,_("Common name, expire date (desc)")) ?> + </select> + </td> + </tr> + <tr> + <td class="DataTD"><?=_("Certificate status")?></td> + <td colspan="8" class="DataTD" > + <select name="status"> + <?=sprintf('<option value="%d"%s>%s</option>',0, 0 == $status ? " selected" : "" ,_("Current/Active")) ?> + <?=sprintf('<option value="%d"%s>%s</option>',1, 1 == $status ? " selected" : "" ,_("All")) ?> + </select> + </td> + </tr> + <tr> + <td class="DataTD" colspan="9"><input type="submit" name="reset" value="<?=_("Reset")?>" /> + <input type="submit" name="filter" value="<?=_("Apply filter/sort")?>" /></td> + </tr> + <tr> + <td colspan="9" class="DataTD"> </td> + </tr> <? - $query = "select UNIX_TIMESTAMP(`oemail`.`created`) as `created`, - UNIX_TIMESTAMP(`oemail`.`expire`) - UNIX_TIMESTAMP() as `timeleft`, - UNIX_TIMESTAMP(`oemail`.`expire`) as `expired`, - `oemail`.`expire` as `expires`, `oemail`.`revoked` as `revoke`, - UNIX_TIMESTAMP(`oemail`.`revoked`) as `revoked`, - `oemail`.`CN`, `oemail`.`serial`, `oemail`.`id`, - `oemail`.`description` - from `orgemailcerts` as `oemail`, `org` - where `org`.`memid`='".intval($_SESSION['profile']['id'])."' and - `org`.`orgid`=`oemail`.`orgid` "; - if($viewall != 1) - { - $query .= "AND `oemail`.`revoked`=0 AND `oemail`.`renewed`=0 "; - $query .= "HAVING `timeleft` > 0 AND `revoked`=0 "; - } - $query .= "ORDER BY `oemail`.`modified` desc"; - $res = mysql_query($query); - if(mysql_num_rows($res) <= 0) - { + $query = "select UNIX_TIMESTAMP(`oemail`.`created`) as `created`, + UNIX_TIMESTAMP(`oemail`.`expire`) - UNIX_TIMESTAMP() as `timeleft`, + UNIX_TIMESTAMP(`oemail`.`expire`) as `expired`, + `oemail`.`expire` as `expires`, `oemail`.`revoked` as `revoke`, + UNIX_TIMESTAMP(`oemail`.`revoked`) as `revoked`, + `oemail`.`CN`, `oemail`.`serial`, `oemail`.`id`, + `oemail`.`description`, `oemail`.`ou`, `orginfo`.`O` + from `orgemailcerts` as `oemail`, `org`, `orginfo` + where `org`.`memid`='".intval($_SESSION['profile']['id'])."' and + `org`.`orgid`=`oemail`.`orgid` and `orginfo`.`id` = `org`.`orgid`"; + if($orgfilterid>0) + { + $query .= "AND `org`.`orgid`=$orgfilterid "; + } + + if(0==$status) + { + $query .= "AND `oemail`.`revoked`=0 AND `oemail`.`renewed`=0 "; + $query .= "HAVING `timeleft` > 0 AND `revoked`=0 "; + } + switch ($sorting){ + case 0: + $query .= "ORDER BY `orginfo`.`O`, `oemail`.`expire` desc"; + break; + case 1: + $query .= "ORDER BY `orginfo`.`O`, `oemail`.`ou`, `oemail`.`expire` desc"; + break; + case 2: + $query .= "ORDER BY `orginfo`.`O`, `oemail`.`CN`, `oemail`.`expire` desc"; + break; + } + $res = mysql_query($query); + if(mysql_num_rows($res) <= 0) + { ?> + <tr> - <td colspan="8" class="DataTD"><?=_("No client certificates are currently listed.")?></td> + <td colspan="9" class="DataTD"><?=_("No client certificates are currently listed.")?></td> </tr> <? } else { - while($row = mysql_fetch_assoc($res)) - { - if($row['timeleft'] > 0) - $verified = _("Valid"); - if($row['timeleft'] < 0) - $verified = _("Expired"); - if($row['expired'] == 0) - $verified = _("Pending"); - if($row['revoked'] > 0) - $verified = _("Revoked"); - if($row['revoked'] == 0) - $row['revoke'] = _("Not Revoked"); + $orgname=''; + while($row = mysql_fetch_assoc($res)) + { + if ($row['O']<>$orgname) { + $orgname=$row['O'];?> + <tr> + <td colspan="9" class="title"></td> + </tr> + <tr> + <td colspan="9" class="title"><? printf(_("Certificates for %s"), $orgname)?> </td> + </tr> + <tr> + <td class="DataTD"><?=_("OU/Department")?></td> + <td class="DataTD"><?=_("Renew/Revoke/Delete")?></td> + <td class="DataTD"><?=_("Status")?></td> + <td class="DataTD"><?=_("CommonName")?></td> + <td class="DataTD"><?=_("SerialNumber")?></td> + <td class="DataTD"><?=_("Revoked")?></td> + <td class="DataTD"><?=_("Expires")?></td> + <td colspan="2" class="DataTD"><?=_("Comment *")?></td> + </tr> + <? + } + if($row['timeleft'] > 0) + $verified = _("Valid"); + if($row['timeleft'] < 0) + $verified = _("Expired"); + if($row['expired'] == 0) + $verified = _("Pending"); + if($row['revoked'] > 0) + $verified = _("Revoked"); + if($row['revoked'] == 0) + $row['revoke'] = _("Not Revoked"); ?> <tr> -<? if($verified == _("Valid") || $verified == _("Expired")) { ?> + <td class="DataTD"><?=$row['ou']?></td> + <? if($verified == _("Valid") || $verified == _("Expired")) { ?> <td class="DataTD"><input type="checkbox" name="revokeid[]" value="<?=$row['id']?>"></td> <td class="DataTD"><?=$verified?></td> <td class="DataTD"><a href="account.php?id=19&cert=<?=$row['id']?>"><?=$row['CN']?></a></td> @@ -82,7 +163,7 @@ <td class="DataTD"><?=$verified?></td> <td class="DataTD"><a href="account.php?id=19&cert=<?=$row['id']?>"><?=$row['CN']?></a></td> <? } ?> - <td class="DataTD"><?=$row['serial']?></td> + <td class="DataTD"><?=$row['serial']?></td> <td class="DataTD"><?=$row['revoke']?></td> <td class="DataTD"><?=$row['expires']?></td> <td class="DataTD"><input name="comment_<?=$row['id']?>" type="text" value="<?=htmlspecialchars($row['description'])?>" /></td> @@ -90,18 +171,20 @@ </tr> <? } ?> <tr> - <td class="DataTD" colspan="8"> + <td class="DataTD" colspan="9"> <?=_('* Comment is NOT included in the certificate as it is intended for your personal reference only. To change the comment tick the checkbox and hit "Change Settings".')?> </td> </tr> <tr> <td class="DataTD" colspan="6"><input type="submit" name="renew" value="<?=_("Renew")?>">     - <input type="submit" name="revoke" value="<?=_("Revoke/Delete")?>"></td> + <input type="submit" name="revoke" value="<?=_("Revoke/Delete")?>"></td> <td class="DataTD" colspan="2"><input type="submit" name="change" value="<?=_("Change settings")?>"> </td> </tr> + <tr> + <td class="DataTD" colspan="9"><?=_("From here you can delete pending requests, or revoke valid certificates.")?></td> + </tr> <? } ?> </table> <input type="hidden" name="oldid" value="<?=$id?>"> <input type="hidden" name="csrf" value="<?=make_csrf('clicerchange')?>" /> -</form> -<p><?=_("From here you can delete pending requests, or revoke valid certificates.")?></p> +</form>
\ No newline at end of file diff --git a/pages/account/22.php b/pages/account/22.php index cb40cf2..0413da0 100644 --- a/pages/account/22.php +++ b/pages/account/22.php @@ -14,12 +14,117 @@ 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 -*/ ?> -<? $viewall=0; if(array_key_exists('viewall',$_REQUEST)) $viewall=intval($_REQUEST['viewall']); ?> +*/ + +$orgfilterid = array_key_exists('dorgfilterid',$_SESSION['_config']) ? intval($_SESSION['_config']['dorgfilterid']) : 0; +$sorting = array_key_exists('dsorting',$_SESSION['_config']) ? intval($_SESSION['_config']['dsorting']) : 0; +$status = array_key_exists('dstatus',$_SESSION['_config']) ? intval($_SESSION['_config']['dstatus']) : 0; +?> <form method="post" action="account.php"> <table align="center" valign="middle" border="0" cellspacing="0" cellpadding="0" class="wrapper"> <tr> - <td colspan="8" class="title"><?=_("Domain Certificates")?> - <a href="account.php?id=22&viewall=<?=!$viewall?>"><?=_("View all certificates")?></a></td> + <td colspan="8" class="title"><?=_("Organisation Server Certificates")?> </td> + </tr> + <tr> + <td colspan="8" class="title"><?=_("Filter/Sorting")?></td> + </tr> + <tr> + <td class="DataTD"><?=_("Organisation")?></td> + <td colspan="7" class="DataTD" > + <select name="dorgfilterid"> + <?=sprintf('<option value="%d"%s>%s</option>',0, 0 == $orgfilterid ? " selected" : "" ,_("All")) ?> +<? $query = "select `orginfo`.`O`, `orginfo`.`id` + from `org`, `orginfo` + where `org`.`memid`='".intval($_SESSION['profile']['id'])."' and `orginfo`.`id` = `org`.`orgid` + ORDER BY `orginfo`.`O` "; + $reso = mysql_query($query); + if(mysql_num_rows($reso) >= 1){ + while($row = mysql_fetch_assoc($reso)){ + printf('<option value="%d"%s>%s</option>',$row['id'], $row['id'] == $orgfilterid ? " selected" : "" , $row['O']); + } + }?> + </select> + </td> + </tr> + <tr> + <td class="DataTD"><?=_("Sorting")?></td> + <td colspan="7" class="DataTD" > + <select name="dsorting"> + <?=sprintf('<option value="%d"%s>%s</option>',0, 0 == $sorting ? " selected" : "" ,_("expire date (desc)")) ?> + <?=sprintf('<option value="%d"%s>%s</option>',1, 1 == $sorting ? " selected" : "" ,_("Common name, expire date (desc)")) ?> + </select> + </td> + </tr> + <tr> + <td class="DataTD"><?=_("Certificate status")?></td> + <td colspan="7" class="DataTD" > + <select name="dstatus"> + <?=sprintf('<option value="%d"%s>%s</option>',0, 0 == $status ? " selected" : "" ,_("Current/Active")) ?> + <?=sprintf('<option value="%d"%s>%s</option>',1, 1 == $status ? " selected" : "" ,_("All")) ?> + </select> + </td> + </tr> + <tr> + <td class="DataTD" colspan="8"><input type="submit" name="reset" value="<?=_("Reset")?>" /> + <input type="submit" name="filter" value="<?=_("Apply filter/sort")?>" /></td> + </tr> + <tr> + <td colspan="9" class="DataTD"> </td> + </tr> + + +<? + $query = "select UNIX_TIMESTAMP(`orgdomaincerts`.`created`) as `created`, + UNIX_TIMESTAMP(`orgdomaincerts`.`expire`) - UNIX_TIMESTAMP() as `timeleft`, + UNIX_TIMESTAMP(`orgdomaincerts`.`expire`) as `expired`, + `orgdomaincerts`.`expire` as `expires`, `revoked` as `revoke`, + UNIX_TIMESTAMP(`revoked`) as `revoked`, `CN`, + `orgdomaincerts`.`serial`, + `orgdomaincerts`.`id` as `id`, + `orgdomaincerts`.`description`, `orginfo`.`O` + from `orgdomaincerts`,`org`, `orginfo` + where `org`.`memid`='".intval($_SESSION['profile']['id'])."' + and `orgdomaincerts`.`orgid`=`org`.`orgid` and `orginfo`.`id` = `org`.`orgid`"; + + if($orgfilterid>0) + { + $query .= "AND `org`.`orgid`=$orgfilterid "; + } + + if(0==$status) + { + $query .= "AND `revoked`=0 AND `renewed`=0 "; + $query .= "HAVING `timeleft` > 0 "; + } + switch ($sorting){ + case 0: + $query .= "ORDER BY `orginfo`.`O`, `orgdomaincerts`.`expire` desc"; + break; + case 1: + $query .= "ORDER BY `orginfo`.`O`, `orgdomaincerts`.`CN`, `orgdomaincerts`.`expire` desc"; + break; + } + + +//echo $query."<br>\n"; + $res = mysql_query($query); + if(mysql_num_rows($res) <= 0) + { +?> + <tr> + <td colspan="8" class="DataTD"><?=_("No domains are currently listed.")?></td> + </tr> +<? } else { + $orgname=''; + while($row = mysql_fetch_assoc($res)) + { + if ($row['O']<>$orgname) { + $orgname=$row['O'];?> + <tr> + <td colspan="9" class="title"></td> + </tr> + <tr> + <td colspan="9" class="title"><? printf(_("Certificates for %s"), $orgname)?> </td> </tr> <tr> <td class="DataTD"><?=_("Renew/Revoke/Delete")?></td> @@ -29,42 +134,17 @@ <td class="DataTD"><?=_("Revoked")?></td> <td class="DataTD"><?=_("Expires")?></td> <td colspan="2" class="DataTD"><?=_("Comment *")?></td> -<? - $query = "select UNIX_TIMESTAMP(`orgdomaincerts`.`created`) as `created`, - UNIX_TIMESTAMP(`orgdomaincerts`.`expire`) - UNIX_TIMESTAMP() as `timeleft`, - UNIX_TIMESTAMP(`orgdomaincerts`.`expire`) as `expired`, - `orgdomaincerts`.`expire` as `expires`, `revoked` as `revoke`, - UNIX_TIMESTAMP(`revoked`) as `revoked`, `CN`, - `orgdomaincerts`.`serial`, - `orgdomaincerts`.`id` as `id`, - `orgdomaincerts`.`description` - from `orgdomaincerts`,`org` - where `org`.`memid`='".intval($_SESSION['profile']['id'])."' and `orgdomaincerts`.`orgid`=`org`.`orgid` "; - if($viewall != 1) - { - $query .= "AND `revoked`=0 AND `renewed`=0 "; - $query .= "HAVING `timeleft` > 0 "; - } - $query .= "ORDER BY `orgdomaincerts`.`modified` desc"; -//echo $query."<br>\n"; - $res = mysql_query($query); - if(mysql_num_rows($res) <= 0) - { -?> - <tr> - <td colspan="8" class="DataTD"><?=_("No domains are currently listed.")?></td> </tr> -<? } else { - while($row = mysql_fetch_assoc($res)) - { - if($row['timeleft'] > 0) - $verified = _("Valid"); - if($row['timeleft'] < 0) - $verified = _("Expired"); - if($row['expired'] == 0) - $verified = _("Pending"); - if($row['revoked'] > 0) - $verified = _("Revoked"); + <? + } + if($row['timeleft'] > 0) + $verified = _("Valid"); + if($row['timeleft'] < 0) + $verified = _("Expired"); + if($row['expired'] == 0) + $verified = _("Pending"); + if($row['revoked'] > 0) + $verified = _("Revoked"); if($row['revoked'] == 0) $row['revoke'] = _("Not Revoked"); ?> @@ -92,12 +172,15 @@ </tr> <tr> <td class="DataTD" colspan="6"><input type="submit" name="renew" value="<?=_("Renew")?>" />     - <input type="submit" name="revoke" value="<?=_("Revoke/Delete")?>" /></td> + <input type="submit" name="revoke" value="<?=_("Revoke/Delete")?>" /></td> <td class="DataTD" colspan="2"><input type="submit" name="change" value="<?=_("Change settings")?>" /> </td> </tr> + <tr> + <td class="DataTD" colspan="9"><?=_("From here you can delete pending requests, or revoke valid certificates.")?></td> + </tr> <? } ?> </table> <input type="hidden" name="oldid" value="<?=$id?>" /> <input type="hidden" name="csrf" value="<?=make_csrf('orgsrvcerchange')?>" /> </form> -<p><?=_("From here you can delete pending requests, or revoke valid certificates.")?></p> + |