Browse Source

Rewritten Access for Admin

Tobias Reich 11 years ago
parent
commit
43ff1d06f4
2 changed files with 293 additions and 135 deletions
  1. 263 135
      php/access/admin.php
  2. 30 0
      php/modules/Access.php

+ 263 - 135
php/access/admin.php

@@ -1,175 +1,303 @@
 <?php
 
-/**
- * @name		Admin Access
- * @author		Tobias Reich
- * @copyright	2014 by Tobias Reich
- */
+###
+# @name			Admin Access
+# @author		Tobias Reich
+# @copyright	2014 by Tobias Reich
+###
 
 if (!defined('LYCHEE')) exit('Error: Direct access is not allowed!');
 if (!defined('LYCHEE_ACCESS_ADMIN')) exit('Error: You are not allowed to access this area!');
 
-switch ($_POST['function']) {
+class Admin extends Access {
 
-	// Album Functions
-
-	case 'getAlbums':			$album = new Album($database, $plugins, $settings, null);
-								echo json_encode($album->getAll(false));
-								break;
+	public function check($fn) {
 
-	case 'getAlbum':			Module::dependencies(isset($_POST['albumID']));
-								$album = new Album($database, $plugins, $settings, $_POST['albumID']);
-								echo json_encode($album->get());
-								break;
+		switch ($fn) {
 
-	case 'addAlbum':			Module::dependencies(isset($_POST['title']));
-								$album = new Album($database, $plugins, $settings, null);
-								echo $album->add($_POST['title']);
-								break;
+			# Album functions
+			case 'getAlbums':			$this->getAlbums(); break;
+			case 'getAlbum':			$this->getAlbum(); break;
+			case 'addAlbum':			$this->addAlbum(); break;
+			case 'setAlbumTitle':		$this->setAlbumTitle(); break;
+			case 'setAlbumDescription':	$this->setAlbumDescription(); break;
+			case 'setAlbumPublic':		$this->setAlbumPublic(); break;
+			case 'setAlbumPassword':	$this->setAlbumPassword(); break;
+			case 'deleteAlbum':			$this->deleteAlbum(); break;
 
-	case 'setAlbumTitle':		Module::dependencies(isset($_POST['albumIDs'], $_POST['title']));
-								$album = new Album($database, $plugins, $settings, $_POST['albumIDs']);
-								echo $album->setTitle($_POST['title']);
-								break;
-
-	case 'setAlbumDescription':	Module::dependencies(isset($_POST['albumID'], $_POST['description']));
-								$album = new Album($database, $plugins, $settings, $_POST['albumID']);
-								echo $album->setDescription($_POST['description']);
-								break;
-
-	case 'setAlbumPublic': 		Module::dependencies(isset($_POST['albumID'], $_POST['password']));
-								$album = new Album($database, $plugins, $settings, $_POST['albumID']);
-								echo $album->setPublic($_POST['password']);
-								break;
-
-	case 'setAlbumPassword':	Module::dependencies(isset($_POST['albumID'], $_POST['password']));
-								$album = new Album($database, $plugins, $settings, $_POST['albumID']);
-								echo $album->setPassword($_POST['password']);
-								break;
-
-	case 'deleteAlbum':			Module::dependencies(isset($_POST['albumIDs']));
-								$album = new Album($database, $plugins, $settings, $_POST['albumIDs']);
-								echo $album->delete($_POST['albumIDs']);
-								break;
-
-	// Photo Functions
+			# Photo functions
+			case 'getPhoto':			$this->getPhoto(); break;
+			case 'setPhotoTitle':		$this->setPhotoTitle(); break;
+			case 'setPhotoDescription':	$this->setPhotoDescription(); break;
+			case 'setPhotoStar':		$this->setPhotoStar(); break;
+			case 'setPhotoPublic':		$this->setPhotoPublic(); break;
+			case 'setPhotoAlbum':		$this->setPhotoAlbum(); break;
+			case 'setPhotoTags':		$this->setPhotoTags(); break;
+			case 'deletePhoto':			$this->deletePhoto(); break;
 
-	case 'getPhoto':			Module::dependencies(isset($_POST['photoID'], $_POST['albumID']));
-								$photo = new Photo($database, $plugins, null, $_POST['photoID']);
-								echo json_encode($photo->get($_POST['albumID']));
-								break;
+			# Add functions
+			case 'upload':				$this->upload(); break;
+			case 'importUrl':			$this->importUrl(); break;
+			case 'importServer':		$this->importServer(); break;
 
-	case 'setPhotoTitle':		Module::dependencies(isset($_POST['photoIDs'], $_POST['title']));
-								$photo = new Photo($database, $plugins, null, $_POST['photoIDs']);
-								echo $photo->setTitle($_POST['title']);
-								break;
-
-	case 'setPhotoDescription':	Module::dependencies(isset($_POST['photoID'], $_POST['description']));
-								$photo = new Photo($database, $plugins, null, $_POST['photoID']);
-								echo $photo->setDescription($_POST['description']);
-								break;
+			# Search functions
+			case 'search':				$this->search(); break;
 
-	case 'setPhotoStar':		Module::dependencies(isset($_POST['photoIDs']));
-								$photo = new Photo($database, $plugins, null, $_POST['photoIDs']);
-								echo $photo->setStar();
-								break;
+			# Session functions
+			case 'init':				$this->init(); break;
+			case 'login':				$this->login(); break;
+			case 'logout':				$this->logout(); break;
 
-	case 'setPhotoPublic':		Module::dependencies(isset($_POST['photoID']));
-								$photo = new Photo($database, $plugins, null, $_POST['photoID']);
-								echo $photo->setPublic();
-								break;
+			# Settings functions
+			case 'setLogin':			$this->setLogin(); break;
+			case 'setSorting':			$this->setSorting(); break;
+			case 'setDropboxKey':		$this->setDropboxKey(); break;
 
-	case 'setPhotoAlbum':		Module::dependencies(isset($_POST['photoIDs'], $_POST['albumID']));
-								$photo = new Photo($database, $plugins, null, $_POST['photoIDs']);
-								echo $photo->setAlbum($_POST['albumID']);
-								break;
+			# $_GET functions
+			case 'getAlbumArchive':		$this->getAlbumArchive(); break;
+			case 'getPhotoArchive':		$this->getPhotoArchive(); break;
 
-	case 'setPhotoTags':		Module::dependencies(isset($_POST['photoIDs'], $_POST['tags']));
-								$photo = new Photo($database, $plugins, null, $_POST['photoIDs']);
-								echo $photo->setTags($_POST['tags']);
-								break;
+			# Error
+			default:					exit('Error: Function not found! Please check the spelling of the called function.'); break;
 
-	case 'deletePhoto':			Module::dependencies(isset($_POST['photoIDs']));
-								$photo = new Photo($database, $plugins, null, $_POST['photoIDs']);
-								echo $photo->delete();
-								break;
+		}
 
-	// Add Functions
+	}
 
-	case 'upload':			Module::dependencies(isset($_FILES, $_POST['albumID']));
-							$photo = new Photo($database, $plugins, $settings, null);
-							echo $photo->add($_FILES, $_POST['albumID']);
-							break;
+	# Album functions
 
-	case 'importUrl':		Module::dependencies(isset($_POST['url'], $_POST['albumID']));
-							echo Import::url($_POST['url'], $_POST['albumID']);
-							break;
+	private function getAlbums() {
 
-	case 'importServer':	Module::dependencies(isset($_POST['albumID']));
-							echo Import::server($_POST['albumID'], null);
-							break;
+		$album = new Album($this->database, $this->plugins, $this->settings, null);
+		echo json_encode($album->getAll(false));
 
-	// Search Function
+	}
 
-	case 'search':			Module::dependencies(isset($_POST['term']));
-							echo json_encode(search($database, $settings, $_POST['term']));
-							break;
+	private function getAlbum() {
 
-	// Session Function
+		Module::dependencies(isset($_POST['albumID']));
+		$album = new Album($this->database, $this->plugins, $this->settings, $_POST['albumID']);
+		echo json_encode($album->get());
 
-	case 'init':			Module::dependencies(isset($_POST['version']));
-							$session = new Session($plugins, $settings);
-							echo json_encode($session->init($database, $dbName, false, $_POST['version']));
-							break;
+	}
 
-	case 'login':			Module::dependencies(isset($_POST['user'], $_POST['password']));
-							$session = new Session($plugins, $settings);
-							echo $session->login($_POST['user'], $_POST['password']);
-							break;
+	private function addAlbum() {
 
-	case 'logout':			$session = new Session($plugins, $settings);
-							echo $session->logout();
-							break;
+		Module::dependencies(isset($_POST['title']));
+		$album = new Album($this->database, $this->plugins, $this->settings, null);
+		echo $album->add($_POST['title']);
 
-	// Settings Function
+	}
 
-	case 'setLogin':		Module::dependencies(isset($_POST['username'], $_POST['password']));
-							if (!isset($_POST['oldPassword'])) $_POST['oldPassword'] = '';
-							$settings = new Settings($database);
-							echo $settings->setLogin($_POST['oldPassword'], $_POST['username'], $_POST['password']);
-							break;
+	private function setAlbumTitle() {
 
-	case 'setSorting':		Module::dependencies(isset($_POST['type'], $_POST['order']));
-							$settings = new Settings($database);
-							echo $settings->setSorting($_POST['type'], $_POST['order']);
-							break;
+		Module::dependencies(isset($_POST['albumIDs'], $_POST['title']));
+		$album = new Album($this->database, $this->plugins, $this->settings, $_POST['albumIDs']);
+		echo $album->setTitle($_POST['title']);
 
-	case 'setDropboxKey':	Module::dependencies(isset($_POST['key']));
-							$settings = new Settings($database);
-							echo $settings->setDropboxKey($_POST['key']);
-							break;
+	}
 
-	// Miscellaneous
+	private function setAlbumDescription() {
 
-	default:				switch ($_GET['function']) {
+		Module::dependencies(isset($_POST['albumID'], $_POST['description']));
+		$album = new Album($this->database, $this->plugins, $this->settings, $_POST['albumID']);
+		echo $album->setDescription($_POST['description']);
 
-								case 'getAlbumArchive':		Module::dependencies(isset($_GET['albumID']));
-															$album = new Album($database, $plugins, $settings, $_GET['albumID']);
-															$album->getArchive();
-															break;
+	}
 
-								case 'getPhotoArchive':		Module::dependencies(isset($_GET['photoID']));
-															$photo = new Photo($database, $plugins, null, $_GET['photoID']);
-															$photo->getArchive();
-															break;
+	private function setAlbumPublic() {
 
-								default:					exit('Error: Function not found! Please check the spelling of the called function.');
-															break;
+		Module::dependencies(isset($_POST['albumID'], $_POST['password']));
+		$album = new Album($this->database, $this->plugins, $this->settings, $_POST['albumID']);
+		echo $album->setPublic($_POST['password']);
 
-							}
+	}
 
-							break;
+	private function setAlbumPassword() {
 
-}
+		Module::dependencies(isset($_POST['albumID'], $_POST['password']));
+		$album = new Album($this->database, $this->plugins, $this->settings, $_POST['albumID']);
+		echo $album->setPassword($_POST['password']);
 
-?>
+	}
+
+	private function deleteAlbum() {
+
+		Module::dependencies(isset($_POST['albumIDs']));
+		$album = new Album($this->database, $this->plugins, $this->settings, $_POST['albumIDs']);
+		echo $album->delete($_POST['albumIDs']);
+
+	}
+
+	# Photo functions
+
+	private function getPhoto() {
+
+		Module::dependencies(isset($_POST['photoID'], $_POST['albumID']));
+		$photo = new Photo($this->database, $this->plugins, null, $_POST['photoID']);
+		echo json_encode($photo->get($_POST['albumID']));
+
+	}
+
+	private function setPhotoTitle() {
+
+		Module::dependencies(isset($_POST['photoIDs'], $_POST['title']));
+		$photo = new Photo($this->database, $this->plugins, null, $_POST['photoIDs']);
+		echo $photo->setTitle($_POST['title']);
+
+	}
+
+	private function setPhotoDescription() {
+
+		Module::dependencies(isset($_POST['photoID'], $_POST['description']));
+		$photo = new Photo($this->database, $this->plugins, null, $_POST['photoID']);
+		echo $photo->setDescription($_POST['description']);
+
+	}
+
+	private function setPhotoStar() {
+
+		Module::dependencies(isset($_POST['photoIDs']));
+		$photo = new Photo($this->database, $this->plugins, null, $_POST['photoIDs']);
+		echo $photo->setStar();
+
+	}
+
+	private function setPhotoPublic() {
+
+		Module::dependencies(isset($_POST['photoID']));
+		$photo = new Photo($this->database, $this->plugins, null, $_POST['photoID']);
+		echo $photo->setPublic();
+
+	}
+
+	private function setPhotoAlbum() {
+
+		Module::dependencies(isset($_POST['photoIDs'], $_POST['albumID']));
+		$photo = new Photo($this->database, $this->plugins, null, $_POST['photoIDs']);
+		echo $photo->setAlbum($_POST['albumID']);
+
+	}
+
+	private function setPhotoTags() {
+
+		Module::dependencies(isset($_POST['photoIDs'], $_POST['tags']));
+		$photo = new Photo($this->database, $this->plugins, null, $_POST['photoIDs']);
+		echo $photo->setTags($_POST['tags']);
+
+	}
+
+	private function deletePhoto() {
+
+		Module::dependencies(isset($_POST['photoIDs']));
+		$photo = new Photo($this->database, $this->plugins, null, $_POST['photoIDs']);
+		echo $photo->delete();
+
+	}
+
+	# Add functions
+
+	private function upload() {
+
+		Module::dependencies(isset($_FILES, $_POST['albumID']));
+		$photo = new Photo($this->database, $this->plugins, $this->settings, null);
+		echo $photo->add($_FILES, $_POST['albumID']);
+
+	}
+
+	private function importUrl() {
+
+		Module::dependencies(isset($_POST['url'], $_POST['albumID']));
+		echo Import::url($_POST['url'], $_POST['albumID']);
+
+	}
+
+	private function importServer() {
+
+		Module::dependencies(isset($_POST['albumID']));
+		echo Import::server($_POST['albumID'], null);
+
+	}
+
+	# Search function
+
+	private function search() {
+
+		Module::dependencies(isset($_POST['term']));
+		echo json_encode(search($this->database, $this->settings, $_POST['term']));
+
+	}
+
+	# Session functions
+
+	private function init() {
+
+		global $dbName;
+
+		Module::dependencies(isset($_POST['version']));
+		$session = new Session($this->plugins, $this->settings);
+		echo json_encode($session->init($this->database, $dbName, false, $_POST['version']));
+
+	}
+
+	private function login() {
+
+		Module::dependencies(isset($_POST['user'], $_POST['password']));
+		$session = new Session($this->plugins, $this->settings);
+		echo $session->login($_POST['user'], $_POST['password']);
+
+	}
+
+	private function logout() {
+
+		$session = new Session($this->plugins, $this->settings);
+		echo $session->logout();
+
+	}
+
+	# Settings functions
+
+	private function setLogin() {
+
+		Module::dependencies(isset($_POST['username'], $_POST['password']));
+		if (!isset($_POST['oldPassword'])) $_POST['oldPassword'] = '';
+		$this->settings = new Settings($this->database);
+		echo $this->settings->setLogin($_POST['oldPassword'], $_POST['username'], $_POST['password']);
+
+	}
+
+	private function setSorting() {
+
+		Module::dependencies(isset($_POST['type'], $_POST['order']));
+		$this->settings = new Settings($this->database);
+		echo $this->settings->setSorting($_POST['type'], $_POST['order']);
+
+	}
+
+	private function setDropboxKey() {
+
+		Module::dependencies(isset($_POST['key']));
+		$this->settings = new Settings($this->database);
+		echo $this->settings->setDropboxKey($_POST['key']);
+
+	}
+
+	# Get functions
+
+	private function getAlbumArchive() {
+
+		Module::dependencies(isset($_GET['albumID']));
+		$album = new Album($this->database, $this->plugins, $this->settings, $_GET['albumID']);
+		$album->getArchive();
+
+	}
+
+	private function getPhotoArchive() {
+
+		Module::dependencies(isset($_GET['photoID']));
+		$photo = new Photo($this->database, $this->plugins, null, $_GET['photoID']);
+		$photo->getArchive();
+
+	}
+
+}

+ 30 - 0
php/modules/Access.php

@@ -0,0 +1,30 @@
+<?php
+
+###
+# @name			Access
+# @author		Tobias Reich
+# @copyright	2014 by Tobias Reich
+###
+
+if (!defined('LYCHEE')) exit('Error: Direct access is not allowed!');
+
+class Access {
+
+	protected $database	= null;
+	protected $plugins	= null;
+	protected $settings	= null;
+
+	public function __construct($database, $plugins, $settings) {
+
+		# Init vars
+		$this->database	= $database;
+		$this->plugins	= $plugins;
+		$this->settings	= $settings;
+
+		return true;
+
+	}
+
+}
+
+?>