⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.37
Server IP:
41.128.143.86
Server:
Linux host.raqmix.cloud 6.8.0-1025-azure #30~22.04.1-Ubuntu SMP Wed Mar 12 15:28:20 UTC 2025 x86_64
Server Software:
Apache
PHP Version:
8.3.23
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
share
/
psa-horde
/
kronolith
/
lib
/
Calendar
/
Edit File: Remote.php
<?php /** * Kronolith_Calendar_Remote defines an API for single external WebDAV or * CalDAV calendars. * * Copyright 2010-2017 Horde LLC (http://www.horde.org/) * * See the enclosed file COPYING for license information (GPL). If you * did not receive this file, see http://www.horde.org/licenses/gpl. * * @author Jan Schneider <jan@horde.org> * @package Kronolith */ class Kronolith_Calendar_Remote extends Kronolith_Calendar { /** * The URL of this calendar. * * @var string */ protected $_url; /** * The name of this calendar. * * @var string */ protected $_name; /** * The description of this calendar. * * @var string */ protected $_desc = ''; /** * The HTTP user name for this calendar. * * @var string */ protected $_user; /** * The HTTP password for this calendar. * * @var string */ protected $_password; /** * The color of this calendar. * * @var string */ protected $_color; /** * Constructor. * * @param array $params A hash with any parameters that this calendar * might need. * Required parameters: * - share: The share of this calendar. */ public function __construct($params = array()) { if (!isset($params['url'])) { throw new BadMethodCallException('url parameter is missing'); } if (!isset($params['name'])) { throw new BadMethodCallException('name parameter is missing'); } $key = $GLOBALS['registry']->getAuthCredential('password'); if ($key) { $secret = $GLOBALS['injector']->getInstance('Horde_Secret'); if (!empty($params['user'])) { $params['user'] = $secret->read($key, base64_decode($params['user'])); } if (!empty($params['password'])) { $params['password'] = $secret->read($key, base64_decode($params['password'])); } } parent::__construct($params); } /** * Returns the name of this calendar. * * @return string This calendar's name. */ public function name() { return $this->_name; } /** * Returns the description of this calendar. * * @return string This calendar's description. */ public function description() { return $this->_desc; } /** * Returns the background color for this calendar. * * @return string A HTML color code. */ public function background() { return empty($this->_color) ? parent::background() : $this->_color; } /** * Encapsulates permissions checking. * * @param integer $permission The permission to check for. * @param string $user The user to check permissions for. Defaults * to the current user. * @param string $creator An event creator, to check for creator * permissions. * * @return boolean Whether the user has the permission on this calendar. */ public function hasPermission($permission, $user = null, $creator = null) { return (boolean)(Kronolith::getDriver('Ical', $this->_url)->getPermission() & $permission); } /** * Whether this calendar is supposed to be displayed in lists. * * @return boolean True if this calendar should be displayed. */ public function display() { return in_array($this->_url, $GLOBALS['calendar_manager']->get(Kronolith::DISPLAY_REMOTE_CALENDARS)); } /** * Returns the URL of this calendar. * * @return string This calendar's URL. */ public function url() { return $this->_url; } /** * Returns the authentication credentials for this calendar. * * @return array This calendar's credentials. */ public function credentials() { if (!empty($this->_user)) { return array('user' => $this->_user, 'password' => $this->_password); } return array(); } /** * Returns a hash representing this calendar. * * @return array A simple hash. */ public function toHash() { return array_merge( parent::toHash(), array('show' => in_array($this->_url, $GLOBALS['calendar_manager']->get(Kronolith::DISPLAY_REMOTE_CALENDARS)), 'edit' => $this->hasPermission(Horde_Perms::EDIT)), $this->credentials() ); } }
Simpan