⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 api.php

📁 一款可以和GOOGLE媲美的开源统计系统,运用AJAX.功能强大. 无色提示:按照需要PHP5.1以上和MySQL数据库支持。
💻 PHP
📖 第 1 页 / 共 2 页
字号:
<?php/** * Piwik - Open source web analytics *  * @link http://piwik.org * @license http://www.gnu.org/licenses/gpl-3.0.html Gpl v3 or later * @version $Id: API.php 581 2008-07-27 23:07:52Z matt $ *  * @package Piwik_UsersManager *//** *  * @package Piwik_UsersManager */class Piwik_UsersManager_API extends Piwik_Apiable{	static private $instance = null;	static public function getInstance()	{		if (self::$instance == null)		{            			$c = __CLASS__;			self::$instance = new $c();		}		return self::$instance;	}		static public $methodsNotToPublish = array();		/**	 * Returns the list of all the users	 * 	 * @return array the list of all the users	 */	static public function getUsers()	{		Piwik::checkUserIsSuperUser();				$db = Zend_Registry::get('db');		$users = $db->fetchAll("SELECT * FROM ".Piwik::prefixTable("user")." ORDER BY login ASC");		return $users;	}		/**	 * Returns the list of all the users login	 * 	 * @return array the list of all the users login	 */	static public function getUsersLogin()	{		Piwik::checkUserHasSomeAdminAccess();				$db = Zend_Registry::get('db');		$users = $db->fetchAll("SELECT login FROM ".Piwik::prefixTable("user")." ORDER BY login ASC");		$return = array();		foreach($users as $login)		{			$return[] = $login['login'];		}		return $return;	}		/**	 * For each user, returns the list of website IDs where the user has the supplied $access level.	 * If a user doesn't have the given $access to any website IDs, 	 * the user will not be in the returned array.	 * 	 * @param string Access can have the following values : 'view' or 'admin'	 * 	 * @return array 	The returned array has the format 	 * 					array( 	 * 						login1 => array ( idsite1,idsite2), 	 * 						login2 => array(idsite2), 	 * 						...	 * 					)	 * 	 */	static public function getUsersSitesFromAccess( $access )	{		Piwik::checkUserIsSuperUser();				self::checkAccessType($access);				$db = Zend_Registry::get('db');		$users = $db->fetchAll("SELECT login,idsite 								FROM ".Piwik::prefixTable("access")								." WHERE access = ?", $access);		$return = array();		foreach($users as $user)		{			$return[$user['login']][] = $user['idsite'];		}		return $return;			}		/**	 * For each user, returns his access level for the given $idSite.	 * If a user doesn't have any access to the $idSite ('noaccess'), 	 * the user will not be in the returned array.	 * 	 * @param string website ID	 * 	 * @return array 	The returned array has the format 	 * 					array( 	 * 						login1 => 'view', 	 * 						login2 => 'admin',	 * 						login3 => 'view', 	 * 						...	 * 					)	 */	static public function getUsersAccessFromSite( $idSite )	{		Piwik::checkUserHasAdminAccess( $idSite );				$db = Zend_Registry::get('db');		$users = $db->fetchAll("SELECT login,access 								FROM ".Piwik::prefixTable("access")								." WHERE idsite = ?", $idSite);		$return = array();		foreach($users as $user)		{			$return[$user['login']] = $user['access'];		}		return $return;			}	/**	 * For each website ID, returns the access level of the given $userLogin.	 * If the user doesn't have any access to a website ('noaccess'), 	 * this website will not be in the returned array.	 * If the user doesn't have any access, the returned array will be an empty array.	 * 	 * @param string User that has to be valid	 * 	 * @return array 	The returned array has the format 	 * 					array( 	 * 						idsite1 => 'view', 	 * 						idsite2 => 'admin',	 * 						idsite3 => 'view', 	 * 						...	 * 					)	 */	static public function getSitesAccessFromUser( $userLogin )	{		Piwik::checkUserIsSuperUser();				self::checkUserExists($userLogin);				$db = Zend_Registry::get('db');		$users = $db->fetchAll("SELECT idsite,access 								FROM ".Piwik::prefixTable("access")								." WHERE login = ?", $userLogin);		$return = array();		foreach($users as $user)		{			$return[$user['idsite']] = $user['access'];		}		return $return;	}	/**	 * Returns the user information (login, password md5, alias, email, date_registered, etc.)	 * 	 * @param string the user login	 * 	 * @return array the user information	 */	static public function getUser( $userLogin )	{		Piwik::checkUserIsSuperUser();		self::checkUserExists($userLogin);				$db = Zend_Registry::get('db');		$user = $db->fetchRow("SELECT * 								FROM ".Piwik::prefixTable("user")								." WHERE login = ?", $userLogin);		return $user;	}		/**	 * Returns the user information (login, password md5, alias, email, date_registered, etc.)	 * 	 * @param string the user email	 * 	 * @return array the user information	 */	static public function getUserByEmail( $userEmail )	{		Piwik::checkUserIsSuperUser();		self::checkUserEmailExists($userEmail);				$db = Zend_Registry::get('db');		$user = $db->fetchRow("SELECT * 								FROM ".Piwik::prefixTable("user")								." WHERE email = ?", $userEmail);		return $user;	}		static private function checkLogin($userLogin)	{		if(self::userExists($userLogin))		{			throw new Exception(sprintf(Piwik_TranslateException('UsersManager_ExceptionLoginExists'),$userLogin));		}				if(!self::isValidLoginString($userLogin))		{			throw new Exception(Piwik_TranslateException('UsersManager_ExceptionInvalidLogin'));		}	}			static private function checkPassword($password)	{		if(!self::isValidPasswordString($password))		{			throw new Exception(Piwik_TranslateException('UsersManager_ExceptionInvalidPassword'));		}	}		static private function checkEmail($email)	{		if(self::userEmailExists($email))		{			throw new Exception(sprintf(Piwik_TranslateException('UsersManager_ExceptionEmailExists'),$email));		}				if(!Piwik::isValidEmailString($email))		{			throw new Exception(Piwik_TranslateException('UsersManager_ExceptionInvalidEmail'));		}	}			static private function getCleanAlias($alias,$userLogin)	{		if(empty($alias))		{			$alias = $userLogin;		}		return $alias;	}		static private function getCleanPassword($password)	{		// if change here, should also edit the installation process 		// to change how the root pwd is saved in the config file		return md5($password);	}			/**	 * Add a user in the database.	 * A user is defined by 	 * - a login that has to be unique and valid 	 * - a password that has to be valid 	 * - an alias 	 * - an email that has to be in a correct format	 * 	 * @see userExists()	 * @see isValidLoginString()	 * @see isValidPasswordString()	 * @see isValidEmailString()	 * 	 * @exception in case of an invalid parameter	 */	static public function addUser( $userLogin, $password, $email, $alias = false )	{		Piwik::checkUserIsSuperUser();				self::checkLogin($userLogin);		self::checkPassword($password);		self::checkEmail($email);		$alias = self::getCleanAlias($alias,$userLogin);		$passwordTransformed = self::getCleanPassword($password);				$token_auth = self::getTokenAuth($userLogin, $passwordTransformed);				$db = Zend_Registry::get('db');				$db->insert( Piwik::prefixTable("user"), array(									'login' => $userLogin,									'password' => $passwordTransformed,									'alias' => $alias,									'email' => $email,									'token_auth' => $token_auth,									)		);				// we reload the access list which doesn't yet take in consideration this new user		Zend_Registry::get('access')->loadAccess();			}		/**	 * Updates a user in the database. 	 * Only login and password are required (case when we update the password).	 * When the password changes, the key token for this user will change, which could break	 * its API calls.	 * 	 * @see addUser() for all the parameters	 */	static public function updateUser(  $userLogin, $password = false, $email = false, $alias = false )

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -