This repository has been archived on 2023-02-21. You can view files and clone it, but cannot push or open issues or pull requests.
univnautes-old/virtualenv/pkg/univnautes.inc

139 lines
3.6 KiB
PHP

<?php
/*
univnautes.inc
Copyright (C) 2011 Entr'ouvert
*/
function univnautes_sync() {
global $config;
$dir = "/var/lib/univnautes";
if (!is_dir($dir))
mkdir( $dir, 0700, true );
if (!is_array($config['installedpackages']['univnautes']))
return;
if (!is_array($config['installedpackages']['univnautes']['config']))
return;
if (!is_array($config['installedpackages']['univnautes']['config'][0]))
return;
$conf = $config['installedpackages']['univnautes']['config'][0];
conf_mount_rw();
$vars = array();
# default values
$b64s = array( "samlkey", "samlcrt",
"samlkeyidp", "samlcrtidp",
"mdca", "mdcrt",
"wlca", "wlstaticips",
"mdlocal",
"userbl", "macbl" );
foreach($b64s as $b64) {
if (isset($conf[$b64]) && strlen($conf[$b64]) > 0) {
$data = base64_decode($conf[$b64]);
$fname = $dir . "/" . $b64;
$f = fopen( $fname, "wb");
chmod( $fname, 0600);
fwrite($f, $data);
fclose($f);
$vars[$b64] = $fname;
}
}
$urls = array( "mdurl", "wlurl", "defaultidp", "redirecturl" );
foreach($urls as $url) {
if ( isset($conf[$url]) && (strlen($conf[$url]) > 0) && (parse_url($conf[$url]) != FALSE) ) {
$vars[$url] = $conf[$url];
}
}
$booleans = array( "enableidp" );
foreach($booleans as $boolean) {
if ( isset($conf[$boolean]) && (strlen($conf[$boolean]) > 0) ) {
$vars[$boolean] = "on";
} else {
$vars[$boolean] = "off";
}
}
$contents = "# DO NOT EDIT THIS FILE\n";
foreach($vars as $var => $val) {
$contents = $contents . strtoupper($var) . "=\"" . $val . "\"\n";
}
file_put_contents( $dir . "/vars.sh", $contents );
conf_mount_ro();
}
function univnautes_restart_all() {
# restart service, update metadata and whitelist
mwexec_bg("/usr/local/etc/rc.d/univnautes.sh restart");
mwexec_bg("/usr/local/etc/rc.d/macblacklist.sh restart");
mwexec_bg("/usr/local/bin/univnautes-update-metadata.sh");
mwexec_bg("/usr/local/bin/univnautes-update-local-metadata.sh");
mwexec_bg("/usr/local/bin/univnautes-update-whitelist.sh");
mwexec_bg("/usr/local/bin/univnautes-update-map.sh");
}
function univnautes_texts_sync() {
mwexec_bg("/usr/local/bin/univnautes-update-map.sh");
univnautes_texts_build();
}
function univnautes_texts_build() {
global $config;
$dir = "/var/lib/univnautes/templates";
if (!is_dir($dir))
mkdir( $dir, 0755, true );
if (!is_array($config['installedpackages']['univnautestexts']))
return;
if (!is_array($config['installedpackages']['univnautestexts']['config']))
return;
if (!is_array($config['installedpackages']['univnautestexts']['config'][0]))
return;
$conf = $config['installedpackages']['univnautestexts']['config'][0];
conf_mount_rw();
$names = array(
"base" => array("header", "footer", "disclaimer", "univinfo"),
);
foreach($names as $basename => $blocks) {
$contents = "{% extends \"" . $basename . "0.html\" %}\n\n";
foreach($blocks as $block) {
print $block . "<br />";
if (isset($conf[$block]) && strlen($conf[$block]) > 0) {
$html = utf8_encode(base64_decode($conf[$block]));
$contents = $contents . "{% block " . $block . " %}\n" . $html . "\n{% endblock %}\n";
}
}
file_put_contents( $dir . "/" . $basename . ".html", $contents );
}
$dir = "/var/lib/univnautes";
$b64s = array( "geourls", "geolocal");
foreach($b64s as $b64) {
$fname = $dir . "/" . $b64;
if (isset($conf[$b64]) && strlen($conf[$b64]) > 0) {
$data = base64_decode($conf[$b64]);
$f = fopen( $fname, "wb");
chmod( $fname, 0600);
fwrite($f, $data);
fclose($f);
} else {
unlink($fname);
}
}
conf_mount_ro();
}
?>