예제 #1
0
function SambaRoamingEnabled()
{
    $sock = new sockets();
    $sock->SET_INFO('SambaRoamingEnabled', $_GET["SambaRoamingEnabled"]);
    $samba = new samba();
    $samba->SaveToLdap();
}
예제 #2
0
function SaveGlobal()
{
    $samba = new samba();
    $shared_name = $_GET["ShareName"];
    $php5 = LOCATE_PHP5_BIN();
    $folder_name = $samba->GetShareName("/media/{$_GET["uuid"]}");
    if ($folder_name == null) {
        $samba->main_array["{$shared_name}"]["path"] = "/media/{$_GET["uuid"]}";
        $samba->main_array["{$shared_name}"]["create mask"] = "0777";
        $samba->main_array["{$shared_name}"]["directory mask"] = "0777";
        $samba->main_array["{$shared_name}"]["root preexec"] = "{$php5} /usr/share/artica-postfix/exec.samba.php --usb-mount {$_GET["uuid"]} %u";
        $samba->main_array["{$shared_name}"]["root postexec"] = "{$php5} /usr/share/artica-postfix/exec.samba.php --usb-umount {$_GET["uuid"]} %u";
        $samba->main_array["{$shared_name}"]["root preexec close"] = "yes";
        $samba->SaveToLdap();
    } else {
        $samba->main_array["{$folder_name}"]["path"] = "/media/{$_GET["uuid"]}";
        $samba->main_array["{$folder_name}"]["create mask"] = "0777";
        $samba->main_array["{$folder_name}"]["directory mask"] = "0777";
        $samba->main_array["{$folder_name}"]["root preexec"] = "{$php5} /usr/share/artica-postfix/exec.samba.php --usb-mount {$_GET["uuid"]} %u";
        $samba->main_array["{$folder_name}"]["root postexec"] = "{$php5} /usr/share/artica-postfix/exec.samba.php --usb-umount {$_GET["uuid"]} %u";
        $samba->main_array["{$folder_name}"]["root preexec close"] = "yes";
        $samba->SaveToLdap();
    }
}
예제 #3
0
function save()
{
    $sock = new sockets();
    if (isset($_GET["EnableScannedOnly"])) {
        $sock->SET_INFO("EnableScannedOnly", $_GET["EnableScannedOnly"]);
    }
    if (isset($_GET["EnableKav4Samba"])) {
        $sock->SET_INFO("EnableKav4Samba", $_GET["EnableKav4Samba"]);
    }
    if (isset($_GET["EnableSambaXapian"])) {
        $sock->SET_INFO("EnableSambaXapian", $_GET["EnableSambaXapian"]);
    }
    $samab = new samba();
    $samab->SaveToLdap();
}
예제 #4
0
function save()
{
    $samba = new samba();
    $array["nt_acl_support"] = "nt acl support";
    $array["map_acl_inherit"] = "map acl inherit";
    $array["acl_check_permissions"] = "acl check permissions";
    $array["acl_group_control"] = "acl group control";
    $array["inherit_permissions"] = "inherit permissions";
    $array["inherit_acls"] = "inherit acls";
    while (list($key, $value) = each($array)) {
        $NEW_GET[$value] = $_GET[$key];
    }
    while (list($key, $value) = each($NEW_GET)) {
        $samba->main_array["global"][$key] = $value;
    }
    $samba->SaveToLdap();
}
예제 #5
0
function folder_change_sharename()
{
    $folder = $_POST["ChangeShareNameOrg"];
    $newshare = $_POST["ChangeShareNameNew"];
    writelogs("Change share name {$folder} -> {$newshare}", __FUNCTION__, __FILE__, __LINE__);
    $smb = new samba();
    while (list($key, $val) = each($smb->main_array[$folder])) {
        writelogs("Change share name {$newshare} -> {$key}={$val}", __FUNCTION__, __FILE__, __LINE__);
        $smb->main_array[$newshare][$key] = $val;
    }
    unset($smb->main_array["{$folder}"]);
    $smb->SaveToLdap();
}
예제 #6
0
function main_save_server()
{
    $server_name = $_POST["server_name"];
    $workgroup = $_POST["workgroup"];
    $samba = new samba();
    $samba->main_array["global"]["netbios name"] = $server_name;
    $samba->main_array["global"]["workgroup"] = $workgroup;
    $samba->main_array["global"]["domain logons"] = "yes";
    $samba->main_array["global"]["preferred master"] = "yes";
    $samba->main_array["global"]["domain master"] = "yes";
    $samba->main_array["global"]["local master"] = "yes";
    $samba->main_array["global"]["os level"] = 34;
    $samba->SaveToLdap();
}
예제 #7
0
function save(){
	$sock=new sockets();
	$sock->SET_INFO("EnableDropBox",$_GET["EnableDropBox"]);
	$sock->SET_INFO("EnableShareDropBox",$_GET["EnableShareDropBox"]);
	$sock->SaveConfigFile(base64_encode(serialize($_GET)),"DropBoxShareProperties");
	
	$users=new usersMenus();
	if($users->SAMBA_INSTALLED){
		$samba=new samba();
		$folder_name=$samba->GetShareName("/home/dropbox");
		if($_GET["EnableShareDropBox"]==1){
			if($folder_name==null){
				$samba->main_array[$_GET["ShareDropBoxName"]]["path"]="/home/dropbox";
				$samba->main_array[$_GET["ShareDropBoxName"]]["create mask"]= "0660";
				$samba->main_array[$_GET["ShareDropBoxName"]]["directory mask"] = "0770";
				$samba->SaveToLdap();
			}else{
				if($folder_name<>$_GET["ShareDropBoxName"]){
					$oldarray=$samba->main_array[$folder_name];
					unset($samba->main_array[$folder_name]);
					$samba->main_array[$_GET["ShareDropBoxName"]]=$oldarray;
					$samba->SaveToLdap();
				}
			}	
		}else{
			if($folder_name<>null){
				unset($samba->main_array[$folder_name]);
				$samba->SaveToLdap();
			}
			
		}
	}
	
}
include_once dirname(__FILE__) . '/ressources/class.squid.inc';
include_once dirname(__FILE__) . '/ressources/class.samba.inc';
system('/usr/share/artica-postfix/bin/process1 --force ' . md5(date('Y-m-d H:i:s')));
$users = new usersMenus();
if ($users->POSTFIX_INSTALLED) {
    if ($users->AMAVIS_INSTALLED) {
        $amavis = new amavis();
        $amavis->Save();
        $amavis->SaveToServer();
    }
    $main = new main_cf();
    $main->save_conf();
    $main->save_conf_to_server();
    system('/etc/init.d/artica-postfix restart postfix');
    if ($users->cyrus_imapd_installed) {
        system('/usr/share/artica-postfix/bin/artica-install --cyrus-checkconfig');
        system('/etc/init.d/artica-postfix restart imap &');
    }
}
if ($users->SQUID_INSTALLED) {
    $squid = new squidbee();
    $squid->SaveToLdap();
    $squid->SaveToServer();
    system('/etc/init.d/artica-postfix restart squid &');
}
if ($users->SAMBA_INSTALLED) {
    $smb = new samba();
    $smb->SaveToLdap();
    system('/usr/share/artica-postfix/bin/artica-install --samba-reconfigure');
    system('/etc/init.d/artica-postfix restart samba &');
}
예제 #9
0
function neighborhood_save(){

	$sock=new sockets();
	$samba=new samba();
	switch ($_POST["neighborhood-save"]) {
		case "SINGLE_MODE":
			$samba->main_array["global"]["domain logons"]="no";
			$samba->main_array["global"]["preferred master"]="no";
			$samba->main_array["global"]["domain master"]="no";
			$samba->main_array["global"]["local master"]="no";
			$samba->main_array["global"]["os level"]=20;
			$sock->SET_INFO("TypeOfSamba",1);
			$samba->SaveToLdap();
			break; 
			
		case "LOCAL_MASTER":
			$samba->main_array["global"]["domain logons"]="no";
			$samba->main_array["global"]["preferred master"]="yes";
			$samba->main_array["global"]["domain master"]="no";
			$samba->main_array["global"]["local master"]="yes";
			$samba->main_array["global"]["os level"]=33;
			$sock->SET_INFO("TypeOfSamba",2);
			$samba->SaveToLdap();
			break; 			
		
		case "ROLE_DOMAIN_PDC":
			$samba->main_array["global"]["domain logons"]="yes";
			$samba->main_array["global"]["preferred master"]="yes";
			$samba->main_array["global"]["domain master"]="yes";
			$samba->main_array["global"]["local master"]="yes";
			$samba->main_array["global"]["os level"]=40;
			$sock->SET_INFO("TypeOfSamba",3);
			$samba->SaveToLdap();	
			break; 
			
		default:
			$samba->main_array["global"]["domain logons"]="no";
			$samba->main_array["global"]["preferred master"]="no";
			$samba->main_array["global"]["domain master"]="no";
			$samba->main_array["global"]["local master"]="no";
			$samba->main_array["global"]["os level"]=20;
			$samba->SaveToLdap();		
			$sock->SET_INFO("TypeOfSamba",1);	
			break;
	}
	
	$sock=new sockets();
	$sock->getFrameWork("cmd.php?samba-reconfigure=yes");
	$sock->SET_INFO("SambaSecurityLevel", $_POST["SambaSecurityLevel"]);
	$tpl=new templates();
	echo $tpl->_ENGINE_parse_body("{need_reboot}");
	
	//You may need to restart your computer before changes take effect
	
	
}
예제 #10
0
function SimpleShareDelCompToPath()
{
    $uid = $_GET["del-uid"];
    $samba = new samba();
    $keypath = $samba->GetShareName(base64_decode($_GET["path"]));
    $hosts = explode(" ", $samba->main_array[$keypath]["hosts allow"]);
    if (is_array($hosts)) {
        while (list($index, $host) = each($hosts)) {
            if ($host == null) {
                continue;
            }
            $hote[$host] = $host;
        }
    }
    unset($hote[$uid]);
    if (is_array($hote)) {
        while (list($index, $host) = each($hote)) {
            $final[] = $host;
        }
    }
    if (count($final) > 0) {
        $samba->main_array[$keypath]["hosts allow"] = @implode(" ", $final);
        $samba->main_array[$keypath]["hosts deny"] = "0.0.0.0/0";
        $samba->main_array[$keypath]["public"] = "yes";
        $samba->main_array[$keypath]["force user"] = "******";
        $samba->main_array[$keypath]["guest ok"] = "yes";
        $samba->main_array[$keypath]["read only"] = "no";
        $samba->main_array[$keypath]["browseable"] = "yes";
        $samba->main_array["global"]["guest account"] = "nobody";
        $samba->main_array["global"]["map to guest"] = "Bad Password";
        unset($samba->main_array[$keypath]["write list"]);
        unset($samba->main_array[$keypath]["valid users"]);
        unset($samba->main_array[$keypath]["read list"]);
    } else {
        unset($samba->main_array[$keypath]["force user"]);
        unset($samba->main_array[$keypath]["public"]);
        unset($samba->main_array[$keypath]["guest ok"]);
        unset($samba->main_array[$keypath]["read only"]);
        unset($samba->main_array[$keypath]["hosts deny"]);
        unset($samba->main_array[$keypath]["hosts allow"]);
    }
    $samba->SaveToLdap();
}
예제 #11
0
function fix_hide_unwriteable_files()
{
    $smb = new samba();
    while (list($key, $array) = each($smb->main_array)) {
        while (list($valuename, $value) = each($array)) {
            if ($valuename == "hide_unwriteable_files") {
                echo "Found {$key},{$valuename}\n";
                $mod = true;
                unset($smb->main_array[$key][$valuename]);
                $smb->main_array[$key]["hide unwriteable files"] = $value;
            }
        }
    }
    if ($mod == true) {
        $smb->SaveToLdap();
    }
}
예제 #12
0
function neighborhood_save()
{
    $field = $_GET["neighborhood-save"];
    $value = $_GET["value"];
    $samba = new samba();
    switch ($field) {
        case "HasSingleMode":
            $samba->main_array["global"]["domain logons"] = "no";
            $samba->main_array["global"]["preferred master"] = "no";
            $samba->main_array["global"]["domain master"] = "no";
            $samba->main_array["global"]["local master"] = "no";
            $samba->main_array["global"]["os level"] = 20;
            $samba->SaveToLdap();
            break;
        case "hasLocalMaster":
            $samba->main_array["global"]["domain logons"] = "no";
            $samba->main_array["global"]["preferred master"] = "yes";
            $samba->main_array["global"]["domain master"] = "no";
            $samba->main_array["global"]["local master"] = "yes";
            $samba->main_array["global"]["os level"] = 33;
            $samba->SaveToLdap();
            break;
        case "HasPDC":
            $samba->main_array["global"]["domain logons"] = "yes";
            $samba->main_array["global"]["preferred master"] = "yes";
            $samba->main_array["global"]["domain master"] = "yes";
            $samba->main_array["global"]["local master"] = "yes";
            $samba->main_array["global"]["os level"] = 40;
            $samba->SaveToLdap();
            break;
        default:
            $samba->main_array["global"]["domain logons"] = "no";
            $samba->main_array["global"]["preferred master"] = "no";
            $samba->main_array["global"]["domain master"] = "no";
            $samba->main_array["global"]["local master"] = "no";
            $samba->main_array["global"]["os level"] = 20;
            $samba->SaveToLdap();
            break;
    }
}
예제 #13
0
function EnableSambaXapian()
{
    $sock = new sockets();
    $_POST["password"] = url_decode_special_tool($_POST["password"]);
    $sock->SET_INFO("EnableSambaXapian", $_POST["EnableSambaXapian"]);
    $sock->SET_INFO("EnableHomesXapian", $_POST["EnableHomesXapian"]);
    $sock->SaveConfigFile(base64_encode(serialize($_POST)), "SambaXapianAuth");
    $samab = new samba();
    $samab->SaveToLdap();
}
예제 #14
0
function SetLogLevel()
{
    $smb = new samba();
    $smb->main_array["global"]["log level"] = $_POST["SetLogLevel"];
    $smb->SaveToLdap();
}
예제 #15
0
function set_log_level($level){
	$samba=new samba();
	$samba->main_array["global"]["log level"]=$level;
	$samba->SaveToLdap();
	
}	
예제 #16
0
function SMBRESTART()
{
    $smb = new samba();
    $smb->SaveToLdap();
    $tpl = new templates();
    if (posix_getuid() != 0) {
        echo $tpl->_ENGINE_parse_body("<hr>{CHANGE_SID_GROUPS}", "samba.index.php");
    }
}
예제 #17
0
function mounts_delete()
{
    $ldap = new clladp();
    include_once 'ressources/class.samba.inc';
    $auto = new autofs();
    $auto->automounts_Browse();
    $INFOS = $auto->hash_by_dn[$_GET["AutoFSDeleteDN"]];
    $FOLDER = $INFOS["FOLDER"];
    $fullpath = "/automounts/{$FOLDER}";
    $FOLDER = addslashes($FOLDER);
    $q = new mysql();
    $sql = "DELETE FROM automount_davfs WHERE local_dir='{$FOLDER}'";
    $q->QUERY_SQL($sql, "artica_backup");
    if (!$q->ok) {
        echo $q->mysql_error;
        return;
    }
    $sql = "DELETE FROM xapian_folders WHERE autmountdn='{$_GET["AutoFSDeleteDN"]}'";
    $q->QUERY_SQL($sql, "artica_backup");
    if (!$q->ok) {
        echo $q->mysql_error;
        return;
    }
    $samba = new samba();
    if (isset($samba->main_shared_folders[$fullpath])) {
        unset($samba->main_array[$samba->main_shared_folders[$fullpath]]);
        $samba->SaveToLdap();
    }
    if (!$ldap->ldap_delete($_GET["AutoFSDeleteDN"])) {
        echo "function: " . __FUNCTION__ . "\n" . "file: " . __FILE__ . "\nline: " . __LINE__ . "\n" . $ldap->ldap_last_error;
        return;
    }
    $sock = new sockets();
    $sock->getFrameWork("autofs.php?autofs-reload=yes");
}
예제 #18
0
function TASK_SETTINGS_SOCKETS($key)
{
    $EXEC_NICE = EXEC_NICE();
    $meta = new artica_meta(true);
    events("Get key informations from {$key}", __FUNCTION__, __FILE__, __LINE__);
    $http = new httpget();
    $datasToSend = base64_encode(serialize($meta->GLOBAL_ARRAY));
    $body = $http->send("{$meta->ArticaMetaHostname}/lic.query.server.php", "post", array("DATAS" => $datasToSend, "GET_SOCKETS_INFO" => $key));
    if (!preg_match("#<RESULTS>(.+?)</RESULTS>#", $body, $re)) {
        events("Get key informations from {$key} FAILED", __FUNCTION__, __FILE__, __LINE__);
        return false;
    }
    $value = base64_decode($re[1]);
    $sock = new sockets();
    events("Saving key {$key}", __FUNCTION__, __FILE__, __LINE__);
    $filewrite = @file_put_contents("/etc/artica-postfix/settings/Daemons/{$key}", $value, LOCK_EX);
    if (!$filewrite) {
        events("Save configuration settings [{$key}] = " . strlen($value) . " Failed", __FUNCTION__, __FILE__, __LINE__);
        send_email_events("failed to modify settings \"{$key}\"", null, "CLOUD");
    }
    events("Save configuration settings [{$key}] ={$filewrite} bytes SUCCESS", __FUNCTION__, __FILE__, __LINE__);
    switch ($key) {
        case "NetworkScannerMasks":
            $sock->getFrameWork("cmd.php?squid-rebuild=yes");
            $sock->getFrameWork("cmd.php?postfix-networks=yes");
            send_email_events("Success to modify settings \"{$key}\"", "Postfix or Squid was scheduled to be reloaded.\n", "CLOUD");
            break;
        case "DDClientConfig":
            $sock->getFrameWork("cmd.php?squid-rebuild=yes");
            $sock->getFrameWork("cmd.php?ddclient=yes");
            send_email_events("Success to modify settings \"{$key}\"", "DDClient And Squid was scheduled to be reloaded.\n", "CLOUD");
            break;
        case "EnableDDClient":
            $sock->getFrameWork("cmd.php?ddclient=yes");
            send_email_events("Success to modify settings \"{$key}\"", "DDClient was scheduled to be reloaded.\n", "CLOUD");
            break;
    }
    $SQUID["SQUIDEnable"] = true;
    $SQUID["ArticaSquidParameters"] = true;
    $SQUID["hasProxyTransparent"] = true;
    $SQUID["EnableClamavInCiCap"] = true;
    $SQUID["EnableUfdbGuard"] = true;
    $SQUID["EnableAdZapper"] = true;
    $SQUID["EnableSquidClamav"] = true;
    $SQUID["SquidBlockSites"] = true;
    $SQUID["ArticaEnableKav4ProxyInSquid"] = true;
    $SQUID["DansGuardianEnabled"] = true;
    $SQUID["SquidExternalAuth"] = true;
    $SQUID["SquidFTPParams"] = true;
    $SAMBA["SambaSMBConf"] = true;
    $COMMAND["PostfixBinInterfaces"] = "cmd.php?postfix-interfaces=yes";
    $COMMAND["PostfixMynetworks"] = "cmd.php?postfix-networks=yes";
    $COMMAND["myhostname"] = "cmd.php?postfix-others-values=yes";
    $COMMAND["HashMainCf"] = "cmd.php?postfix-others-values=yes";
    $COMMAND["smtp_bind_address6"] = "cmd.php?postfix-interfaces=yes";
    $COMMAND["PostfixEnableIpv6"] = "cmd.php?postfix-interfaces=yes";
    $COMMAND["EnableCluebringer"] = "cmd.php?cluebringer-restart=yes";
    $COMMAND["EnableASSP"] = "cmd.php?restart-assp=yes";
    $COMMAND["KasxFilterEnabled"] = "cmd.php?SaveMaincf=yes";
    $COMMAND["EnableArticaSMTPFilter"] = "cmd.php?artica-filter-reload=yes";
    $COMMAND["EnableAmavisDaemon"] = "cmd.php?SaveMaincf=yes";
    $COMMAND["SpamAssMilterEnabled"] = "cmd.php?SaveMaincf=yess";
    $COMMAND["kavmilterEnable"] = "cmd.php?SaveMaincf=yes";
    $COMMAND["SpamAssMilterEnabled"] = "cmd.php?SaveMaincf=yes";
    $COMMAND["EnableArticaPolicyFilter"] = "cmd.php?artica-policy-restart=yes";
    $COMMAND["ArticaOpenVPNSettings"] = "cmd.php?restart-openvpn-server=yes";
    $COMMAND["EnableOPenVPNServerMode"] = "cmd.php?restart-openvpn-server=yes";
    $COMMAND["OpenVPNRoutes"] = "cmd.php?restart-openvpn-server=yes";
    $RESTART_STATUS["ArticaOpenVPNSettings"] = true;
    $RESTART_STATUS["EnableOPenVPNServerMode"] = true;
    $REBUILD_OPENVPN_CERTS["ArticaOpenVPNSettings"] = true;
    $REBUILD_OPENVPN_CERTS["EnableOPenVPNServerMode"] = true;
    if ($REBUILD_OPENVPN_CERTS[$key]) {
        shell_exec("/bin/rm -rf /etc/artica-postfix/openvpn/keys/*");
        exec("/etc/init.d/artica-postfix restart openvpns", $results);
        send_email_events("OpenVPN certificate was rebuilded", @implode("\n", $results), "VPN");
        shell_exec(LOCATE_PHP5_BIN2() . " " . dirname(__FILE__) . "/exec.artica.meta.users.php --export-openvpn-users &");
    }
    if ($SQUID[$key]) {
        $sock->getFrameWork("cmd.php?squid-rebuild=yes");
        $sock->getFrameWork("cmd.php?squidnewbee=yes");
        send_email_events("Success to modify settings \"{$key}\"", "Squid was scheduled to be reloaded.\n", "CLOUD");
    }
    if ($SAMBA[$key]) {
        include_once dirname(__FILE__) . "/ressources/class.samba.inc";
        events("Loading samba class and save new samba configuration....", __FUNCTION__, __FILE__, __LINE__);
        $smb = new samba();
        $smb->SaveToLdap();
    }
    if ($COMMAND[$key] != null) {
        $sock->getFrameWork($COMMAND[$key]);
        events("Execute {$COMMAND[$key]}", __FUNCTION__, __FILE__, __LINE__);
    } else {
        events("No command for \"{$key}\"", __FUNCTION__, __FILE__, __LINE__);
    }
    if ($RESTART_STATUS[$key]) {
        events("restarting artica status....", __FUNCTION__, __FILE__, __LINE__);
        @unlink("/usr/share/artica-postfix/ressources/logs/global.status.ini");
        $sock->getFrameWork("cmd.php?restart-artica-status=yes");
    } else {
        events("No need to restart artica-status....", __FUNCTION__, __FILE__, __LINE__);
    }
    sys_THREAD_COMMAND_SET(LOCATE_PHP5_BIN2() . " " . dirname(__FILE__) . "/exec.artica.meta.users.php --export-all-settings");
    events("FINISH, Return true", __FUNCTION__, __FILE__, __LINE__);
    return true;
}
예제 #19
0
function delete_folder()
{
    if (!is_object($GLOBALS["USERMENUS"])) {
        $users = new usersMenus();
        $GLOBALS["USERMENUS"] = $users;
    } else {
        $users = $GLOBALS["USERMENUS"];
    }
    $path = $_GET["delete-folder"];
    $sock = new sockets();
    $array = unserialize(base64_decode($sock->getFrameWork("cmd.php?filestat=" . base64_encode($path))));
    $permissions = $array["owner"]["owner"]["name"];
    if ($users->IfIsAnuser()) {
        if ($permissions != $_SESSION["uid"]) {
            $tpl = new templates();
            echo $tpl->javascript_parse_text("{ERROR_NO_PRIVS}\n{owner}:{$permissions}");
            exit;
        }
    }
    if ($path != null) {
        echo base64_decode($sock->getFrameWork("cmd.php?folder-remove=" . base64_encode($path)));
        $samba = new samba();
        $folder_name = basename($folder);
        if (is_array($samba->main_array[$folder_name])) {
            unset($samba->main_array[$folder_name]);
            $samba->SaveToLdap();
        }
    } else {
        $tpl = new templates();
        echo $tpl->javascript_parse_text("{ERROR_NO_PRIVS}");
    }
}
예제 #20
0
function AddAclGroup()
{
    $uid = base64_decode($_GET["AddAclGroup"]);
    $PathACL = base64_decode($_GET["path"]);
    $samba = new samba();
    $FOLDER = $samba->main_shared_folders[$PathACL];
    writelogs("ACLS:... Add new ACL for group \"{$uid}\" path={$PathACL} Shared name=\"{$FOLDER}\"", __FUNCTION__, __FILE__, __LINE__);
    if ($FOLDER != null) {
        $item = $uid;
        if (strpos($item, " ") > 0) {
            $item = "@\"{$item}\"";
        } else {
            $item = "@{$item}";
        }
        $h = $samba->hash_privileges($FOLDER);
        $write = $h[$item]["write list"];
        writelogs("ACLS:...  {$item} Write list = {$write}", __FUNCTION__, __FILE__, __LINE__);
        if ($write != "yes") {
            $h[$item]["write list"] = 'yes';
            reset($h);
            while (list($user, $array) = each($h)) {
                if (trim($user) == null) {
                    continue;
                }
                while (list($priv, $n) = each($array)) {
                    $a[$priv][] = $user;
                }
            }
            if (is_array($a)) {
                while (list($c, $d) = each($a)) {
                    $samba->main_array[$FOLDER][$c] = implode(',', $d);
                }
                $samba->SaveToLdap();
            }
        }
    }
    $acls = new aclsdirs(base64_decode($_GET["path"]));
    if (!isset($acls->acls_array["GROUPS"][$uid])) {
        $acls->acls_array["GROUPS"][$uid] = array();
    }
    $acls->SaveAcls();
}
예제 #21
0
function cups_add_printer_disk()
{
    $path = $_GET["path"];
    $driver = $_GET["driver"];
    $vender = $_GET["vender"];
    $localization = $_GET["localization"];
    $name = $_GET["name"];
    $name = str_replace(" ", "_", $name);
    $name = str_replace(";", "_", $name);
    $localization = str_replace(" ", "_", $localization);
    $localization = str_replace(";", "_", $localization);
    $samba = new samba();
    $samba->SaveToLdap();
    $array["name"] = $name;
    $array["path"] = $path;
    $array["driver"] = $driver;
    $array["localization"] = $localization;
    $datas = base64_encode(serialize($array));
    $sock = new sockets();
    $datas = $sock->getFrameWork("cmd.php?cups-add-printer=yes&params={$datas}");
    $return = unserialize(base64_decode($datas));
    echo implode("\n", base64_decode($return));
}
예제 #22
0
if(posix_getuid()<>0){die("Cannot be used in web server mode\n\n");}
include_once(dirname(__FILE__).'/ressources/class.templates.inc');
include_once(dirname(__FILE__).'/ressources/class.ini.inc');
include_once(dirname(__FILE__).'/ressources/class.main_cf.inc');
include_once(dirname(__FILE__).'/ressources/class.amavis.inc');
include_once(dirname(__FILE__).'/ressources/class.samba.inc');
include_once(dirname(__FILE__).'/ressources/class.squid.inc');

$main=new main_cf();
$main->save_conf();
$main->save_conf_to_server(1);

$amavis=new amavis();
$amavis->Save();
$amavis->SaveToServer();

$samba=new samba();
$samba->SaveToLdap();

$squid=new squidbee();
$squid->SaveToLdap();
$squid->SaveToServer();

system('/etc/init.d/artica-postfix restart postfix');
system('/etc/init.d/artica-postfix restart squid');
system('/etc/init.d/artica-postfix restart samba');
system('/usr/share/artica-postfix/bin/artica-install --cyrus-checkconfig');
system('/etc/init.d/artica-postfix restart imap');
system('/etc/init.d/artica-postfix restart saslauthd');

?>
예제 #23
0
function DeleteUsbShare()
{
    $samba = new samba();
    unset($samba->main_array[$_GET["DeleteUsbShare"]]);
    $samba->SaveToLdap();
}
예제 #24
0
function name_resolve_order()
{
    $tpl = new templates();
    $smb = new samba();
    $name_resolve = explode(" ", $smb->main_array["global"]["name resolve order"]);
    if (isset($_GET["index"])) {
        $name_resolve_new = array_move_element_flat($name_resolve, $_GET["index"], $_GET["pos"]);
        $smb->main_array["global"]["name resolve order"] = implode(" ", $name_resolve_new);
        $smb->SaveToLdap();
        echo "<script>name_resolve_order_refresh();</script>";
        return;
    }
    $html = "\n\t<hr>\n\t<table cellspacing='0' cellpadding='0' border='0' class='tableView' style='width:100%'>\n<thead class='thead'>\n\t<tr>\n\t\t<th width=1%>&nbsp;</th>\n\t\t<th colspan=3>{name_resolve_order}</th>\n\t</tr>\n</thead>\n<tbody class='tbody'>";
    while (list($num, $val) = each($name_resolve)) {
        if ($classtr == "oddRow") {
            $classtr = null;
        } else {
            $classtr = "oddRow";
        }
        $html = $html . "\n\t\t\t<tr class={$classtr}>\n\t\t\t<td width=1%><img src='img/Database32.png'></td>\n\t\t\t<td><strong style='font-size:14px'>{smb_{$val}}</strong></td>\n\t\t\t<td width=1%>" . imgtootltip("arrow-up-32.png", "{up}", "NameResolveOrderSet('{$num}','up')") . "</td>\n\t\t\t<td width=1%>" . imgtootltip("arrow-down-32.png", "{down}", "NameResolveOrderSet('{$num}','down')") . "</td>\n\t\t\t</tr>\n\t\t\t\n\t\t\t";
    }
    $html = $html . "</tbody><table>";
    echo $tpl->_ENGINE_parse_body($html);
}
예제 #25
0
function share_folder()
{
    $folder = $_GET["share-folder"];
    $folder_name = basename($folder);
    $samba = new samba();
    if (is_array($samba->main_array[$folder_name])) {
        $d = date('YmdHis');
        $folder_name = "{$folder_name}_{$d}";
    }
    $samba->main_array["{$folder_name}"]["path"] = $folder;
    $samba->main_array["{$folder_name}"]["create mask"] = "0660";
    $samba->main_array["{$folder_name}"]["directory mask"] = "0770";
    $samba->SaveToLdap();
}