<?php
/**
* This file is part of the upgrade process.
*
* @package SendStudio
*/

/**
* Do a sanity check to make sure the upgrade api has been included.
*/
if (!class_exists('Upgrade_API', false)) {
	exit();
}

/**
* This class runs one change for the upgrade process.
* The Upgrade_API looks for a RunUpgrade method to call.
* That should return false for failure
* It should return true for success or if the change has already been made.
*
* @package SendStudio
*/
class users_update_adminpermissions extends Upgrade_API
{
	/**
	* RunUpgrade
	* Runs the query for the upgrade process
	* and returns the result from the query.
	* The calling function looks for a true or false result
	*
	* @return Mixed Returns true if the condition is already met (eg the column already exists).
	*  Returns false if the database query can't be run.
	*  Returns the resource from the query (which is then checked to be true).
	*/
	function RunUpgrade($upgrade = false)
	{
		/**
		* Change 'Manager', 'Root' into 'admintype', 'listadmintype' permissions.
		*/
		$query = 'SELECT userid, Manager, Root FROM ' . SENDSTUDIO_TABLEPREFIX . 'users';
		$result = $this->Db->Query($query);
		while ($row = $this->Db->Fetch($result)) {
			// set admintype to 'c'ustom by default.
			$admintype = $listadmintype = $templateadmintype = 'c';

			// if they are a manager and a root user, they are a full system administrator.
			if ($row['Manager'] == 1 && $row['Root'] == 1) {
				$admintype = 'a';
				$listadmintype = 'a';
				$templateadmintype = 'a';
			}

			// if they are a manager but not a root user, they are a list administrator.
			if ($row['Manager'] == 1 && $row['Root'] != 1) {
				$listadmintype = 'a';
			}

			$query = "UPDATE " . SENDSTUDIO_TABLEPREFIX . "users SET admintype='" . $admintype . "', listadmintype='" . $listadmintype . "', templateadmintype='" . $templateadmintype . "' WHERE userid='" . $row['userid'] . "'";

			$update_result = $this->Db->Query($query);
		}
		return true;
	}
}
