| Current File : /home/jvzmxxx/wiki1/extensions/SocialProfile/UserProfile/ApiUserProfilePrivacy.php |
<?php
/**
* API module for setting the visibility ("privacy") of a profile field
*
* @file
* @ingroup Extensions
* @author Vedmaka <god.vedmaka@gmail.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU General Public License 2.0 or later
*/
class ApiUserProfilePrivacy extends ApiBase {
/**
* Constructor
*/
public function __construct( $query, $moduleName ) {
parent::__construct( $query, $moduleName );
}
/**
* Main entry point
*/
public function execute() {
$params = $this->extractRequestParams();
$method = $params['method'];
$fieldKey = $params['field_key'];
$privacy = $params['privacy'];
$tuid = $params['tuid'];
// Search content: for example let's search
if ( strlen( $fieldKey ) == 0 ) {
$this->dieUsage( 'No data provided', 'field_key' );
}
if ( !$tuid ) {
$tuid = $this->getUser()->getId();
}
$data = array();
switch ( $method ) {
case 'get':
$data['privacy'] = SPUserSecurity::getPrivacy( $tuid, $fieldKey );
break;
case 'set':
if ( !$privacy || !in_array( $privacy, array( 'public', 'hidden', 'friends', 'foaf' ) ) ) {
$this->dieUsage( 'The supplied argument for the "privacy" parameter is invalid (no such parameter/missing parameter)', 'privacy' );
}
SPUserSecurity::setPrivacy( $tuid, $fieldKey, $privacy );
$data['replace'] = SPUserSecurity::renderEye( $fieldKey, $tuid );
break;
}
// Output
$result = $this->getResult();
$result->addValue( null, $this->getModuleName(), $data );
}
/**
* @return array
*/
protected function getAllowedParams() {
return array(
'method' => array(
ApiBase::PARAM_TYPE => 'string',
),
'field_key' => array(
ApiBase::PARAM_TYPE => 'string',
),
'privacy' => array(
ApiBase::PARAM_TYPE => 'string',
),
'tuid' => array(
ApiBase::PARAM_TYPE => 'integer',
)
);
}
}