Completed
Pull Request — master (#19)
by
unknown
07:59
created
code/WhitelistGenerator.php 1 patch
Spacing   +24 added lines, -24 removed lines patch added patch discarded remove patch
@@ -1,12 +1,12 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 class WhitelistGenerator extends SS_Object implements Flushable {
3 3
 
4
-	public static function generateWhitelist(){
4
+	public static function generateWhitelist() {
5 5
 		$whitelist = self::generateWhitelistRules();
6 6
 		self::syncCacheFilesystem($whitelist);
7 7
 	}
8 8
 
9
-	public static function generateWhitelistRules(){
9
+	public static function generateWhitelistRules() {
10 10
 		//get all URL rules
11 11
 		$rules = Config::inst()->get('Director', 'rules');
12 12
 
@@ -16,8 +16,8 @@  discard block
 block discarded – undo
16 16
 			$pattern = ltrim($pattern, '/!');
17 17
 
18 18
 			//match first portion of the URL, either delimited by slash or colon or end-of-line
19
-			if (preg_match('/^(.*?)(\/|:|$)/', $pattern, $matches)){
20
-				if (!empty($matches[1])){
19
+			if (preg_match('/^(.*?)(\/|:|$)/', $pattern, $matches)) {
20
+				if (!empty($matches[1])) {
21 21
 					array_push($allTopLevelRules, $matches[1]);
22 22
 				}
23 23
 			}
@@ -29,18 +29,18 @@  discard block
 block discarded – undo
29 29
 			$filteredRules = array_merge($filteredRules, $addToWhitelist);
30 30
 		}
31 31
 		
32
-		foreach($allTopLevelRules as $rule) {
32
+		foreach ($allTopLevelRules as $rule) {
33 33
 			if (strpos($rule, '$') !== false) {
34 34
 				if ($rule === '$Controller') {
35 35
 					//special case for Controllers, add all possible controllers
36 36
 					$subControllers = ClassInfo::subclassesFor(new Controller());
37 37
 
38
-					foreach ($subControllers as $controller){
39
-						array_push($filteredRules, $controller);    //add the controller name as a link
38
+					foreach ($subControllers as $controller) {
39
+						array_push($filteredRules, $controller); //add the controller name as a link
40 40
 					}
41 41
 
42 42
 				} elseif ($rule === '$URLSegment') {
43
-					$topLevelPagesArray = array();  //temporary array to store top-level pages
43
+					$topLevelPagesArray = array(); //temporary array to store top-level pages
44 44
 					$oldTopLevelPagesArray = array();
45 45
 
46 46
 					//special case for SiteTree, add all possible top Level Pages
@@ -87,13 +87,13 @@  discard block
 block discarded – undo
87 87
 	 * Sync the list of all top-level routes with the file system whitelist cache
88 88
 	 */
89 89
 	protected static function syncCacheFilesystem($whitelist) {
90
-		$dir = BASE_PATH . DIRECTORY_SEPARATOR . Config::inst()->get('WhitelistGenerator', 'dir');
90
+		$dir = BASE_PATH.DIRECTORY_SEPARATOR.Config::inst()->get('WhitelistGenerator', 'dir');
91 91
 
92 92
 		$whitelistFolderContents = scandir($dir);
93 93
 
94 94
 		//create list of files to create
95 95
 		$toCreate = array();
96
-		foreach ($whitelist as $listItem){
96
+		foreach ($whitelist as $listItem) {
97 97
 			if (!in_array($listItem, $whitelistFolderContents)) {
98 98
 				if (!empty($listItem)) {    //don't include empty files, such as the file for /
99 99
 					array_push($toCreate, $listItem);
@@ -103,8 +103,8 @@  discard block
 block discarded – undo
103 103
 
104 104
 		//create list of files to delete
105 105
 		$toDelete = array();
106
-		foreach ($whitelistFolderContents as $file){
107
-			if (!in_array($file, array('','..','.','.htaccess'))) {    //exclude things that should stay in the folder
106
+		foreach ($whitelistFolderContents as $file) {
107
+			if (!in_array($file, array('', '..', '.', '.htaccess'))) {    //exclude things that should stay in the folder
108 108
 				if (!in_array($file, $whitelist)) {
109 109
 					array_push($toDelete, $file);
110 110
 				}
@@ -113,12 +113,12 @@  discard block
 block discarded – undo
113 113
 
114 114
 		//delete files which are no longer necessary
115 115
 		foreach ($toDelete as $delete) {
116
-			unlink($dir . DIRECTORY_SEPARATOR . $delete);
116
+			unlink($dir.DIRECTORY_SEPARATOR.$delete);
117 117
 		}
118 118
 
119 119
 		//create new whitelist items as files
120 120
 		foreach ($toCreate as $create) {
121
-			touch($dir . DIRECTORY_SEPARATOR . $create);
121
+			touch($dir.DIRECTORY_SEPARATOR.$create);
122 122
 		}
123 123
 	}
124 124
 
@@ -130,11 +130,11 @@  discard block
 block discarded – undo
130 130
 	 * @param $currentTopLevelPages
131 131
 	 * @return array URLs of past top-level pages
132 132
 	 */
133
-	protected static function find_old_top_level_pages($currentTopLevelPages){
133
+	protected static function find_old_top_level_pages($currentTopLevelPages) {
134 134
 		$oldPageURLs = array();
135 135
 
136 136
 		$queryClass = 'SQLSelect';
137
-		if (!class_exists($queryClass) && class_exists('SQLQuery')){
137
+		if (!class_exists($queryClass) && class_exists('SQLQuery')) {
138 138
 			$queryClass = 'SQLQuery';
139 139
 		}
140 140
 		
@@ -144,13 +144,13 @@  discard block
 block discarded – undo
144 144
 			array(
145 145
 				'ParentID = 0',
146 146
 				'WasPublished = 1',
147
-				'URLSegment NOT IN (\''.implode("','",array_filter($currentTopLevelPages)).'\')'
147
+				'URLSegment NOT IN (\''.implode("','", array_filter($currentTopLevelPages)).'\')'
148 148
 			)
149 149
 		);
150 150
 
151 151
 		$records = $query->execute();
152 152
 		if ($records) {
153
-			foreach($records as $record) {
153
+			foreach ($records as $record) {
154 154
 				array_push($oldPageURLs, $record['URLSegment']);
155 155
 			}
156 156
 		}
@@ -158,25 +158,25 @@  discard block
 block discarded – undo
158 158
 		return $oldPageURLs;
159 159
 	}
160 160
 
161
-    public static function ensureWhitelistFolderExists(){
162
-		$dir = BASE_PATH . DIRECTORY_SEPARATOR . Config::inst()->get('WhitelistGenerator', 'dir');
161
+    public static function ensureWhitelistFolderExists() {
162
+		$dir = BASE_PATH.DIRECTORY_SEPARATOR.Config::inst()->get('WhitelistGenerator', 'dir');
163 163
 		if (!file_exists($dir)) {
164 164
 			mkdir($dir); //create a new whitelist dir
165
-			chmod($dir,0777);    //make sure it is readable by the web-server user
165
+			chmod($dir, 0777); //make sure it is readable by the web-server user
166 166
 			//create a htaccess file to ensure that the whitelist cache directory is not web-accessible
167 167
 			file_put_contents($dir.DIRECTORY_SEPARATOR.'.htaccess', "Deny from all\n");
168 168
 		}
169 169
 	}
170 170
 
171
-	public static function clearWhitelist(){
172
-		$dir = BASE_PATH . DIRECTORY_SEPARATOR . Config::inst()->get('WhitelistGenerator', 'dir');
171
+	public static function clearWhitelist() {
172
+		$dir = BASE_PATH.DIRECTORY_SEPARATOR.Config::inst()->get('WhitelistGenerator', 'dir');
173 173
 		if (file_exists($dir)) {
174 174
 			array_map('unlink', glob($dir."/*"));
175 175
 		}
176 176
 	}
177 177
 
178 178
 	public static function flush() {
179
-		self::ensureWhitelistFolderExists();    //only create folder on flush, not on sitetree changes
179
+		self::ensureWhitelistFolderExists(); //only create folder on flush, not on sitetree changes
180 180
 		self::generateWhitelist();
181 181
 	}
182 182
 }
Please login to merge, or discard this patch.