From 7320a55693796da0e5d3fffac82438baaf384e4e Mon Sep 17 00:00:00 2001
From: vogelor <vogelor@ispconfig3>
Date: Mon, 10 May 2010 14:38:21 -0400
Subject: [PATCH] added the dashboard to the modules enabled by default
---
server/lib/classes/system.inc.php | 122 ++++++++++++++++++++++++++++++++++++++++
1 files changed, 120 insertions(+), 2 deletions(-)
diff --git a/server/lib/classes/system.inc.php b/server/lib/classes/system.inc.php
index f6fce77..8d1f70c 100644
--- a/server/lib/classes/system.inc.php
+++ b/server/lib/classes/system.inc.php
@@ -1,6 +1,7 @@
<?php
+
/*
-Copyright (c) 2007, projektfarm Gmbh, Till Brehm, Falko Timme
+Copyright (c) 2007, Till Brehm, projektfarm Gmbh
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
@@ -26,7 +27,6 @@
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-
class system{
@@ -463,6 +463,28 @@
}
return false;
}
+
+ /*
+ // Alternative implementation of the is_group function. Should be faster then the old one To be tested.
+ function is_group($group) {
+ $groupfile = '/etc/group';
+ if(is_file($groupfile)) {
+ $handle = fopen ($groupfile, "r");
+ while (!feof($handle)) {
+ $line = trim(fgets($handle, 4096));
+ if($line != ""){
+ $parts = explode(":", $line);
+ if($parts[0] == $group) {
+ fclose ($handle);
+ return true;
+ }
+ }
+ }
+ fclose ($handle);
+ }
+ return false;
+ }
+ */
function root_group(){
global $app;
@@ -1107,6 +1129,102 @@
return false;
}
}
+
+ function replaceLine($filename,$search_pattern,$new_line,$strict = 0,$append = 1) {
+ $lines = @file($filename);
+ $out = '';
+ $found = 0;
+ if(is_array($lines)) {
+ foreach($lines as $line) {
+ if($strict == 0) {
+ if(stristr($line,$search_pattern)) {
+ $out .= $new_line."\n";
+ $found = 1;
+ } else {
+ $out .= $line;
+ }
+ } else {
+ if(trim($line) == $search_pattern) {
+ $out .= $new_line."\n";
+ $found = 1;
+ } else {
+ $out .= $line;
+ }
+ }
+ }
+ }
+
+ if($found == 0) {
+ //* add \n if the last line does not end with \n or \r
+ if(substr($out,-1) != "\n" && substr($out,-1) != "\r") $out .= "\n";
+ //* add the new line at the end of the file
+ if($append == 1) $out .= $new_line."\n";
+ }
+ file_put_contents($filename,$out);
+ }
+
+ function removeLine($filename,$search_pattern,$strict = 0) {
+ if($lines = @file($filename)) {
+ $out = '';
+ foreach($lines as $line) {
+ if($strict == 0) {
+ if(!stristr($line,$search_pattern)) {
+ $out .= $line;
+ }
+ } else {
+ if(!trim($line) == $search_pattern) {
+ $out .= $line;
+ }
+ }
+ }
+ file_put_contents($filename,$out);
+ }
+ }
+
+ function maildirmake($maildir_path, $user = '', $subfolder = '') {
+
+ global $app;
+
+ if($subfolder != '') {
+ $dir = escapeshellarg($maildir_path.'/.'.$subfolder);
+ $dir_cur = escapeshellarg($maildir_path.'/.'.$subfolder.'/cur');
+ $dir_new = escapeshellarg($maildir_path.'/.'.$subfolder.'/new');
+ $dir_tmp = escapeshellarg($maildir_path.'/.'.$subfolder.'/tmp');
+ } else {
+ $dir = escapeshellarg($maildir_path);
+ $dir_cur = escapeshellarg($maildir_path.'/cur');
+ $dir_new = escapeshellarg($maildir_path.'/new');
+ $dir_tmp = escapeshellarg($maildir_path.'/tmp');
+ }
+
+ exec("mkdir -p $dir_cur $dir_new $dir_tmp");
+ exec("chmod 0700 $dir $dir_cur $dir_new $dir_tmp");
+
+ if($user != '' && $this->is_user($user) && $user != 'root') {
+ $user = escapeshellarg($user);
+ exec("chown $user $dir $dir_cur $dir_new $dir_tmp");
+ }
+
+ //* Add the subfolder to the subscriptions and courierimapsubscribed files
+ if($subfolder != '') {
+ // Courier
+ if(!is_file($maildir_path.'/courierimapsubscribed')) {
+ $tmp_file = escapeshellarg($maildir_path.'/courierimapsubscribed');
+ exec("touch $tmp_file && chown vmail:vmail $tmp_file");
+ }
+ $this->replaceLine($maildir_path.'/courierimapsubscribed','INBOX.'.$subfolder,'INBOX.'.$subfolder,1,1);
+
+ // Dovecot
+ if(!is_file($maildir_path.'/subscriptions')) {
+ $tmp_file = escapeshellarg($maildir_path.'/subscriptions');
+ exec("touch $tmp_file && chown vmail:vmail $tmp_file");
+ }
+ $this->replaceLine($maildir_path.'/subscriptions',$subfolder,$subfolder,1,1);
+ }
+
+ $app->log('Created Maildir '.$maildir_path.' with subfolder: '.$subfolder,LOGLEVEL_DEBUG);
+
+ }
}
?>
\ No newline at end of file
--
Gitblit v1.9.1