Seditio Source
Root |
./othercms/ips_4.3.4/applications/core/extensions/core/EditorLocations/Messaging.php
<?php
/**
 * @brief        Editor Extension: Messenger
 * @author        <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
 * @copyright    (c) Invision Power Services, Inc.
 * @license        https://www.invisioncommunity.com/legal/standards/
 * @package        Invision Community
 * @since        05 Jul 2013
 */

namespace IPS\core\extensions\core\EditorLocations;

/* To prevent PHP errors (extending class does not exist) revealing path */
if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
{
   
header( ( isset( $_SERVER['SERVER_PROTOCOL'] ) ? $_SERVER['SERVER_PROTOCOL'] : 'HTTP/1.0' ) . ' 403 Forbidden' );
    exit;
}

/**
 * Editor Extension: Messenger
 */
class _Messaging
{
   
/**
     * Can we use HTML in this editor?
     *
     * @param    \IPS\Member    $member    The member
     * @return    bool|null    NULL will cause the default value (based on the member's permissions) to be used, and is recommended in most cases. A boolean value will override that.
     */
   
public function canUseHtml( $member )
    {
        return
NULL;
    }
   
   
/**
     * Can we use attachments in this editor?
     *
     * @param    \IPS\Member                    $member    The member
     * @param    \IPS\Helpers\Form\Editor    $field    The editor field
     * @return    bool|null    NULL will cause the default value (based on the member's permissions) to be used, and is recommended in most cases. A boolean value will override that.
     */
   
public function canAttach( $member, $field )
    {
        return (bool) \
IPS\Member::loggedIn()->group['g_can_msg_attach'];
    }

   
/**
     * Permission check for attachments
     *
     * @param    \IPS\Member    $member        The member
     * @param    int|null    $id1        Primary ID
     * @param    int|null    $id2        Secondary ID
     * @param    string|null    $id3        Arbitrary data
     * @param    array        $attachment    The attachment data
     * @param    bool        $viewOnly    If true, just check if the user can see the attachment rather than download it
     * @return    bool
     */
   
public function attachmentPermissionCheck( $member, $id1, $id2, $id3, $attachment, $viewOnly=FALSE )
    {
        try
        {
           
$conversation = \IPS\core\Messenger\Conversation::load( $id1 );
            return
$conversation->canView( $member );
        }
        catch ( \
OutOfRangeException $e )
        {
            return
FALSE;
        }
    }
   
   
/**
     * Attachment lookup
     *
     * @param    int|null    $id1    Primary ID
     * @param    int|null    $id2    Secondary ID
     * @param    string|null    $id3    Arbitrary data
     * @return    \IPS\Http\Url|\IPS\Content|\IPS\Node\Model
     * @throws    \LogicException
     */
   
public function attachmentLookup( $id1, $id2, $id3 )
    {
        return \
IPS\core\Messenger\Message::load( $id2 );
    }

   
/**
     * Rebuild content post-upgrade
     *
     * @param    int|null    $offset    Offset to start from
     * @param    int|null    $max    Maximum to parse
     * @return    int            Number completed
     * @note    This method is optional and will only be called if it exists
     */
   
public function rebuildContent( $offset, $max )
    {
        \
IPS\Task::queue( 'core', 'RebuildPosts', array( 'class' => 'IPS\\core\\Messenger\\Message' ), 2 );
        return
0;
    }
}