140 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			140 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
|  * Inspired by the PHP ActivityPub Library by @Landrok
 | |
|  *
 | |
|  * @link https://github.com/landrok/activitypub
 | |
|  */
 | |
| 
 | |
| namespace Activitypub\Activity;
 | |
| 
 | |
| /**
 | |
|  * \Activitypub\Activity\Actor is an implementation of
 | |
|  * one an Activity Streams Actor.
 | |
|  *
 | |
|  * Represents an individual actor.
 | |
|  *
 | |
|  * @see https://www.w3.org/TR/activitystreams-vocabulary/#actor-types
 | |
|  */
 | |
| class Actor extends Base_Object {
 | |
| 	/**
 | |
| 	 * @var string
 | |
| 	 */
 | |
| 	protected $type = 'Person';
 | |
| 
 | |
| 	/**
 | |
| 	 * A reference to an ActivityStreams OrderedCollection comprised of
 | |
| 	 * all the messages received by the actor.
 | |
| 	 *
 | |
| 	 * @see https://www.w3.org/TR/activitypub/#inbox
 | |
| 	 *
 | |
| 	 * @var string
 | |
| 	 *    | null
 | |
| 	 */
 | |
| 	protected $inbox;
 | |
| 
 | |
| 	/**
 | |
| 	 * A reference to an ActivityStreams OrderedCollection comprised of
 | |
| 	 * all the messages produced by the actor.
 | |
| 	 *
 | |
| 	 * @see https://www.w3.org/TR/activitypub/#outbox
 | |
| 	 *
 | |
| 	 * @var string
 | |
| 	 *    | null
 | |
| 	 */
 | |
| 	protected $outbox;
 | |
| 
 | |
| 	/**
 | |
| 	 * A link to an ActivityStreams collection of the actors that this
 | |
| 	 * actor is following.
 | |
| 	 *
 | |
| 	 * @see https://www.w3.org/TR/activitypub/#following
 | |
| 	 *
 | |
| 	 * @var string
 | |
| 	 */
 | |
| 	protected $following;
 | |
| 
 | |
| 	/**
 | |
| 	 * A link to an ActivityStreams collection of the actors that
 | |
| 	 * follow this actor.
 | |
| 	 *
 | |
| 	 * @see https://www.w3.org/TR/activitypub/#followers
 | |
| 	 *
 | |
| 	 * @var string
 | |
| 	 */
 | |
| 	protected $followers;
 | |
| 
 | |
| 	/**
 | |
| 	 * A link to an ActivityStreams collection of objects this actor has
 | |
| 	 * liked.
 | |
| 	 *
 | |
| 	 * @see https://www.w3.org/TR/activitypub/#liked
 | |
| 	 *
 | |
| 	 * @var string
 | |
| 	 */
 | |
| 	protected $liked;
 | |
| 
 | |
| 	/**
 | |
| 	 * A list of supplementary Collections which may be of interest.
 | |
| 	 *
 | |
| 	 * @see https://www.w3.org/TR/activitypub/#streams-property
 | |
| 	 *
 | |
| 	 * @var array
 | |
| 	 */
 | |
| 	protected $streams = array();
 | |
| 
 | |
| 	/**
 | |
| 	 * A short username which may be used to refer to the actor, with no
 | |
| 	 * uniqueness guarantees.
 | |
| 	 *
 | |
| 	 * @see https://www.w3.org/TR/activitypub/#preferredUsername
 | |
| 	 *
 | |
| 	 * @var string|null
 | |
| 	 */
 | |
| 	protected $preferred_username;
 | |
| 
 | |
| 	/**
 | |
| 	 * A JSON object which maps additional typically server/domain-wide
 | |
| 	 * endpoints which may be useful either for this actor or someone
 | |
| 	 * referencing this actor. This mapping may be nested inside the
 | |
| 	 * actor document as the value or may be a link to a JSON-LD
 | |
| 	 * document with these properties.
 | |
| 	 *
 | |
| 	 * @see https://www.w3.org/TR/activitypub/#endpoints
 | |
| 	 *
 | |
| 	 * @var string|array|null
 | |
| 	 */
 | |
| 	protected $endpoints;
 | |
| 
 | |
| 	/**
 | |
| 	 * It's not part of the ActivityPub protocol but it's a quite common
 | |
| 	 * practice to handle an actor public key with a publicKey array:
 | |
| 	 * [
 | |
| 	 *     'id' => 'https://my-example.com/actor#main-key'
 | |
| 	 *     'owner' => 'https://my-example.com/actor',
 | |
| 	 *     'publicKeyPem' => '-----BEGIN PUBLIC KEY-----
 | |
| 	 *                       MIIBI [...]
 | |
| 	 *                       DQIDAQAB
 | |
| 	 *                       -----END PUBLIC KEY-----'
 | |
| 	 * ]
 | |
| 	 *
 | |
| 	 * @see https://www.w3.org/wiki/SocialCG/ActivityPub/Authentication_Authorization#Signing_requests_using_HTTP_Signatures
 | |
| 	 *
 | |
| 	 * @var string|array|null
 | |
| 	 */
 | |
| 	protected $public_key;
 | |
| 
 | |
| 	/**
 | |
| 	 * It's not part of the ActivityPub protocol but it's a quite common
 | |
| 	 * practice to lock an account. If anabled, new followers will not be
 | |
| 	 * automatically accepted, but will instead require you to manually
 | |
| 	 * approve them.
 | |
| 	 *
 | |
| 	 * WordPress does only support 'false' at the moment.
 | |
| 	 *
 | |
| 	 * @see https://docs.joinmastodon.org/spec/activitypub/#as
 | |
| 	 *
 | |
| 	 * @var boolean
 | |
| 	 */
 | |
| 	protected $manually_approves_followers = false;
 | |
| }
 |