Ralf Becker
70e540d71b
constants for the capabilities array, easier lookup in IDEs, table name aliaes to eg. move some tables to other databases
2008-06-07 08:24:18 +00:00
Ralf Becker
4edd90a8bf
"removed php < 5.1 fallback function"
2008-06-05 07:42:21 +00:00
Klaus Leithoff
b0fe8d229e
-patch by Jon Crawford to enable ssl connections for smtp
...
(phpgwapi/inc/class.phpmailer.inc.php )
example: hostname: ssl://smtp.servername.country
port: 465
2008-06-03 09:30:44 +00:00
Ralf Becker
a5a7c2d30e
Additional password crypt types for ldap:
...
- MD5_CRYPT (9 char salt prefixed with $1$)
- BLOWFISH_CRYPT (16 char salt prefixed with $2$)
- EXT_CRYPT (9 char salt, no prefix)
2008-05-31 06:25:04 +00:00
Ralf Becker
45f895d048
"use static html methods"
2008-05-31 06:03:34 +00:00
Ralf Becker
bb08afcc9f
"API change caused already-obsoleted call to sessions_::create() to fail.
...
Thanks to Peter Goerzen <pgoerzen(at)hustlerturf.com>"
2008-05-31 05:47:26 +00:00
Ralf Becker
e2b84e8c32
dont try oids for new postgres versions
2008-05-30 07:08:19 +00:00
Ralf Becker
2d1b53b835
"using standard md5() instead of hash('md5',...), as it's only a pecl extension"
2008-05-27 20:02:56 +00:00
Stefan Becker
aa4e4be631
"add Country Code for Montenegro and Servibia"
2008-05-27 11:28:00 +00:00
Ralf Becker
ae044a9a08
allow to instanciate the historylog with a given user or 0 for
...
changes by the system itself (eg. async service). bo_tracking passes on
it's user param of the constructor.
2008-05-27 09:25:25 +00:00
Ralf Becker
62ca85a1b8
"phpdoc file header and __constuct()"
2008-05-24 06:59:35 +00:00
Ralf Becker
17b8868698
"shorten index names longer or equal to 64 chars for all db types"
2008-05-24 06:37:19 +00:00
Ralf Becker
f7bb40b8a4
"docu und todo update"
2008-05-20 05:16:49 +00:00
Ralf Becker
9f30e824b0
enforce a certain strength of uid, as some clients set quite weak ones)
2008-05-20 04:59:26 +00:00
Ralf Becker
3f6d4f41c2
"- call_user_func requires php5.2 and we want to be php5.1 compatible
...
- also allowing handler to not define an extra_properties method"
2008-05-18 19:16:33 +00:00
Ralf Becker
a659e4eb6b
propagate base_uri and debug level to handlers
2008-05-17 12:54:26 +00:00
Ralf Becker
9008414fff
"- array2string() to format arrays (or objects) as string, eg. for error_log()
...
- allow apps to specify their own autoload handler, only tried after the standard one does not find the class"
2008-05-17 07:34:16 +00:00
Ralf Becker
dfc7176959
"- correct handling of depth: 0 in /
...
- initialise $files['files'] = array() to quiten some warning if propfind returns nothing"
2008-05-17 07:05:57 +00:00
Ralf Becker
6d37a25089
"returning the supportedlock property causes Windows DAV provider and Konqueror to not longer work"
2008-05-13 13:13:38 +00:00
Ralf Becker
fe054923e6
"REALM constant"
2008-05-13 08:34:19 +00:00
Ralf Becker
dd787255fb
"fixed bug in webdav upload, found by skyfredox(at)hotmail.com"
2008-05-13 05:50:11 +00:00
Ralf Becker
48352f6963
"dont return mountpoints (like eg. /apps) twice"
2008-05-10 21:47:16 +00:00
Ralf Becker
5cfc38b4f6
moved webdav handler in the root dir, as its now a general service and not only used by filemanager
2008-05-10 21:15:46 +00:00
Ralf Becker
f0f056420f
"return only the self URL for propfind on app folder with depth 0"
2008-05-10 20:32:03 +00:00
Ralf Becker
0afb2d0324
pricipals and groups collection for WebDAV Acl, to improve support for Apple iCal, you can now use http://domain.com/egroupware/groupdav.php/pricipals/username as account-url in iCal
2008-05-10 20:15:02 +00:00
Ralf Becker
496f8b9c1a
"extra param to session::create() to not create a session, eg. for GroupDAV clients know to not support cookies, eg. Apple's iCal"
2008-05-10 20:04:37 +00:00
Ralf Becker
6d274a7aca
"switching of error_log in _parseDateTime()"
2008-05-10 19:00:31 +00:00
Ralf Becker
4885518b88
autoloading of addressbook classes
2008-05-10 12:06:15 +00:00
Ralf Becker
8578525e00
groupdav app (without own dir)
2008-05-08 20:50:46 +00:00
Ralf Becker
6587e340fc
Some modifications required by CalDAV
2008-05-08 20:33:09 +00:00
Ralf Becker
d2e9143213
First version of new CalDav/CardDAV/GroupDAV access for calendar and
...
addressbook (infolog will follow).
CalDAV is tested so far with lightning 0.8 and Apple's iCal. Please note
that both distinguish between iCalServer and CalDAV!
The URL is currently http://domain.com/egroupware/groupdav.php/calendar/
2008-05-08 20:31:32 +00:00
Ralf Becker
3a5b24dfda
"fixed bug reported by matsie(at)terra.es: fatal error on ical export in calendar:
...
was cased by browser/inc/class.browser.inc.php having top priority in autoloading, which was never intended"
2008-05-06 05:57:21 +00:00
Ralf Becker
f6a883713f
locking for eGW's WebDAV (and later on CalDAV).
...
no recursive (depth infinit) locks atm.
2008-05-01 11:44:55 +00:00
Ralf Becker
9df4251058
"- fixed bug introduced with r25260: connection charset for PDO connection was not longer set, causing utf8 filenames written to mysql, which thinks we are talking latin1 (mysql default)
...
- also fixed wrong DSN for mysqlt"
2008-04-30 19:00:14 +00:00
Ralf Becker
a3a7503c0f
"new static hook methods (class::method) are navitvly supported from php5.2.3+ on, so we need to add some compatibility for our required php5.1
...
"
2008-04-27 11:55:11 +00:00
Ralf Becker
86368a1903
uid and etag (optimistic locking) for addressbook
2008-04-25 19:06:15 +00:00
Ralf Becker
4ecce4f5ae
allow all php callables (eg. "class::method" for static calls) for ExecMethod, ExecMethod2 and as methodstring for hooks
2008-04-25 18:54:06 +00:00
Ralf Becker
a8b924696f
removed some depricated and as far as I know nowhere used methods and make many functions static
2008-04-25 18:52:33 +00:00
Ralf Becker
46325b070c
fixed fatal error happening on some installs when deleting a dir in sqlfs
2008-04-24 15:19:42 +00:00
Ralf Becker
92c1bf9bfa
"also check if the required classes are set for the session restore, fixes a problem with groupdav"
2008-04-22 10:11:49 +00:00
Ralf Becker
80367bb943
removed not longer used old vfs classes and the first stream_wrapper (oldvfs://), I have not yet droped the vfs table, to give the update script more testing with the change to restore
2008-04-21 17:38:39 +00:00
Ralf Becker
9e838a4068
fixed infinit recursion on deleting entries with linked files, first reported by Peter Goerzen
2008-04-21 16:55:52 +00:00
Ralf Becker
1eb9acec27
enable sqlfs_stream_wrapper to run under setup
2008-04-21 15:37:11 +00:00
Ralf Becker
cf4cd2aa3f
restore current egw_vfs::$is_root and egw_vfs::$user
2008-04-21 15:36:30 +00:00
Ralf Becker
0080dc39f0
special mkdir of links_stream_wrapper, so the entry dirs do not inherit the other read/browse rights from the app dir
2008-04-21 11:06:45 +00:00
Ralf Becker
2a1d86911b
allow to call download url with an vfs-url instead of an path
2008-04-21 11:05:34 +00:00
Ralf Becker
ae821396b5
"removed static use of schema_proc, error reported by Thomas Hoth <thomas(at)familie-hoth.de> on the german list"
2008-04-21 05:11:36 +00:00
Ralf Becker
a5b58e57e8
"allow to use link, redirect, redirect_link, invalidate_session_cache static"
2008-04-20 19:31:51 +00:00
Ralf Becker
689ffe18a9
create sqlfs dirs /, /home, /app and removed old vfs entries
2008-04-20 16:44:04 +00:00
Ralf Becker
523997b43e
moved filescenter vfs2 tables and classes to filescenter and added index tables
2008-04-20 16:34:16 +00:00
Ralf Becker
b08b584a76
silently add home dirs, if they dont exist (they get now created by a hook, when a user/group get added
2008-04-19 09:46:58 +00:00
Ralf Becker
2a62e73df1
added required params, to suppress warnings
2008-04-19 09:46:02 +00:00
Ralf Becker
9fe5314ed6
fixed not working removal of home dirs, if acocunt/group get deleted
2008-04-19 09:15:46 +00:00
Ralf Becker
24989686df
implemented moving of data to an other account on deleting an account
2008-04-19 09:14:59 +00:00
Ralf Becker
13cf2edabb
use default fstab, also for an empty one
2008-04-19 09:13:50 +00:00
Ralf Becker
40f32b5d74
"function_backtrace:
...
- dont output first function param for unserialize()
- limit output of function param to 64 chars"
2008-04-18 14:59:59 +00:00
Ralf Becker
c60b632541
"small fix for webdav running on a non apache server"
2008-04-18 10:41:44 +00:00
Ralf Becker
8590b35fdf
"additionally using the port for the pdo connection and remove password from stacktrace of failed connection"
2008-04-18 09:08:48 +00:00
Ralf Becker
48734de102
"additionally using the port for the pdo connection and remove password from stacktrace of failed connection"
2008-04-18 09:08:38 +00:00
Ralf Becker
b86449d359
"fixed problem of perp working with sqlfs or links (use mysqlt driver instead of stock mysql one)"
2008-04-18 08:42:11 +00:00
Ralf Becker
0d799b6896
"hopefull last modification of the update script for the sqlfs, everyone used it before has to go back to api version 1.5.003 and rerun it"
2008-04-16 20:41:41 +00:00
Ralf Becker
f3181308c5
"added quoting"
2008-04-16 11:37:47 +00:00
Ralf Becker
0a5be8a725
moved mime_icon method to egw_vfs
2008-04-16 07:07:31 +00:00
Ralf Becker
e2d0b93353
re-imported spellcheck (aspell) integration from Jose
2008-04-15 19:25:04 +00:00
Ralf Becker
fc1d69e060
"improved update script, for the case the the old vfs table does not contain / or /home"
2008-04-15 14:49:52 +00:00
Ralf Becker
9c117aa197
"emptied egw_vfs instead of egw_sqlfs table"
2008-04-15 14:12:01 +00:00
Ralf Becker
6cc0093543
"update from egw-1.4.004"
2008-04-15 13:02:20 +00:00
Ralf Becker
b0ebb4d0d8
re-added exidently removed images ;-)
2008-04-15 12:38:45 +00:00
Ralf Becker
be2fa1c923
"update to fck 2.6"
2008-04-15 12:23:32 +00:00
Ralf Becker
e4401d7f41
update to FCK 2.6, please note: you probably have to delete your browser cache!
2008-04-15 12:15:22 +00:00
Ralf Becker
fd987f39d2
"fixed not working delete of sqlfs table"
2008-04-15 10:13:15 +00:00
Ralf Becker
256163ba98
"check for a valid eGW session"
2008-04-15 08:04:26 +00:00
Ralf Becker
a58cd51617
"- remove index.{html|php} added by apache, which causes the upload/browsing in some apache configs to fail
...
- check for a valid eGW session"
2008-04-15 08:04:11 +00:00
Ralf Becker
30c265a5c7
"remove index.{html|php} added by apache, which causes the upload/browsing in some apache configs to fail"
2008-04-15 08:02:13 +00:00
Ralf Becker
501df49cbb
stream wrapper interface is now eGW VFS interface
...
- if you already run the 1.5.003 update (AND modified anything in the VFS), you have to re-run it, to not loose your modifications or risk an inconsistent VFS (DB does not match filesystem)
- to re-run the 1.5.003 update (only if your version is already 1.5.003 or bigger!) run the following sql:
UPDATE egw_applications SET app_version=1.5.002 WHERE app_name=phpgwapi
- the new vfs supports now an extended ACL, if that is supported by the backend (sqlfs only currently)
- eacl allows to set separate recursive acl rights for different users or groups on a directory (and subdirs)
- former group grants of group dirs are converted to eacl, thought we only support read or read+write access (no extra add or delete)
- attachments via the links class now also use a stream wrapper interface (links_stream_wrapper) and WebDAV as download handler (which requires no longer filemanager run rights)
2008-04-14 05:52:24 +00:00
Nathan Gray
540901e9c7
Fix config to correctly remove empty values
2008-04-11 13:38:37 +00:00
Klaus Leithoff
3b874ad66f
added fields created/modified to the retrieval of the single account info.
...
added accountstatus/created/modified to the retrieval of the account list.
2008-04-10 09:06:24 +00:00
Klaus Leithoff
5693038f9f
added fields created/modified to the retrieval of the single account info.
...
added accountstatus/created/modified to the retrieval of the account list
2008-04-10 09:06:00 +00:00
Klaus Leithoff
6dd130a1f3
fix for the problem, that allowed attribute values where stripped, due to the security bugfix
2008-04-02 08:47:42 +00:00
Ralf Becker
801d387582
"if links of multiple id's of one app were queried and there was a link between two of them, it was only returned for one"
2008-04-01 15:49:30 +00:00
Ralf Becker
d2024f053f
"added some debug code (switched off by default)"
2008-04-01 15:47:37 +00:00
Ralf Becker
7e22bf1347
"New method try_lang(), usefull for exception handlers or early stages of the initialisation of the egw object,
...
as calling lang would try to load the translations, evtl. cause more errors, eg. because there's no db-connection."
2008-04-01 10:47:50 +00:00
Ralf Becker
3d909d4776
fixed fatal error "Exception thrown without a stack frame in Unknown on line 0", if DB does not exist when calling the regular eGW url
2008-04-01 10:33:54 +00:00
Ralf Becker
868345fcb6
"added static to encrypt_pasword"
2008-03-25 17:05:38 +00:00
Ralf Becker
8a9e4d3d9d
"removing unnecessary instancations"
2008-03-25 17:05:08 +00:00
Ralf Becker
bf31f4e94a
"removing unnecessary instancations"
2008-03-25 17:02:09 +00:00
Ralf Becker
2cd4742695
"removing unnecessary instancations"
2008-03-25 17:00:56 +00:00
Ralf Becker
0c37486b65
"static html methods and other modernisations"
2008-03-25 16:58:50 +00:00
Ralf Becker
1c4b1f9636
"using the global db object"
2008-03-25 16:54:16 +00:00
Ralf Becker
ed5db11312
show session restore time
2008-03-22 16:22:11 +00:00
Ralf Becker
eb2303adc8
"prevent that anyone switches the global db object to an app != 'phpgwapi' (you have to clone it before doing that)"
2008-03-22 12:32:24 +00:00
Ralf Becker
ea3ae107d1
added minimal egw object (egw_minimal), which is shared between egw and setup
2008-03-22 09:29:29 +00:00
Ralf Becker
9553da2f63
"fixed typo: translations --> translation"
2008-03-22 09:25:41 +00:00
Ralf Becker
a02a89fbdb
"stoped permanent error_log of loaded classes"
2008-03-21 21:02:00 +00:00
Ralf Becker
ac04409df7
dynamically autoloading sub-object of egw-object, moved __wakeup methods to concerned classes and other "modernsations" ;-)
2008-03-21 20:50:13 +00:00
Ralf Becker
3bf9ad5efa
dynamically autoloading sub-object of egw-object, moved __wakeup methods to concerned classes and other "modernsations" ;-)
2008-03-21 20:11:59 +00:00
Ralf Becker
3108861db0
"using global db object"
2008-03-21 17:15:02 +00:00
Ralf Becker
de74e8b6ce
"using global db object"
2008-03-21 11:49:28 +00:00
Ralf Becker
e71d16ed28
"fixed not working rename of dirs in the old vfs"
2008-03-20 14:21:13 +00:00
Ralf Becker
2912ec7c61
"fixed broken image title"
2008-03-20 08:32:29 +00:00
Ralf Becker
dc1797f41a
update from 1.4.003
2008-03-19 13:12:13 +00:00
Ralf Becker
af72b6ea54
fixed problem pointed out by lukasz.pilorz(at)allegro.pl
2008-03-19 11:09:27 +00:00
Ralf Becker
b98808f87f
"added todo's (concept) for extended ACL, WebDAV properties and locks"
2008-03-18 13:17:13 +00:00
Ralf Becker
4f94d5837d
use of global db object and new headers, made all methods of the auth class static
2008-03-15 17:27:36 +00:00
Ralf Becker
78624aa9e9
"using the global db object"
2008-03-15 15:52:27 +00:00
Ralf Becker
0927d90e09
"using the global db object"
2008-03-15 15:30:15 +00:00
Ralf Becker
81a0b796d9
"using the global db object"
2008-03-15 15:11:48 +00:00
Ralf Becker
ec042e0f4d
"using the global db object"
2008-03-15 15:00:15 +00:00
Ralf Becker
426fc2825e
"using the global db object"
2008-03-15 14:52:26 +00:00
Ralf Becker
7272868ab5
"using the global db object"
2008-03-15 14:19:06 +00:00
Ralf Becker
3f5c03f91a
"removed double include of mounted dirs in egw_vfs::find"
2008-03-14 15:37:33 +00:00
Ralf Becker
68dfe96fed
"new method download_url"
2008-03-14 15:00:06 +00:00
Ralf Becker
e79c4b3e6a
removed left over line, causing name2id to fail and stopping all logins
2008-03-13 20:08:37 +00:00
Ralf Becker
37a12ac183
"using global db object"
2008-03-13 19:37:09 +00:00
Ralf Becker
04160dda86
dont search of titles if no ids given
2008-03-13 19:31:31 +00:00
Ralf Becker
c01818daa1
egw_db::expression searches for a table_def in all (loaded) apps, not just the current)
2008-03-13 19:30:01 +00:00
Ralf Becker
12cdb8820d
remove empty or null values from the config-table
2008-03-13 19:28:44 +00:00
Ralf Becker
14bc5239b7
"fixed not found first entry of result-set"
2008-03-13 19:12:14 +00:00
Klaus Leithoff
259f6d5cab
fixed a problem in the old vfs_sql class in acl_check, a var group_ok is checked to verify permissions but never set. this did lead to empty
...
downloads in some cases. This was sponsored by PX2@Medien GmbH & Co. KG
2008-03-13 12:48:43 +00:00
Ralf Becker
ae1cabebf7
"new optional param to get_3links to return just the app_id's and not the full link-records"
2008-03-13 11:27:48 +00:00
Ralf Becker
e7d9ca5532
"suppressed warning if ADORecordSet::fetchSingle() has nothing to fetch and docu"
2008-03-13 10:59:57 +00:00
Ralf Becker
3760ea8608
fixed not found tabledefinition if no app-name given and a search of the table was requested (type in var-name)
2008-03-10 21:32:13 +00:00
Ralf Becker
5ea6f9dc1f
search every id only once
2008-03-10 21:02:11 +00:00
Ralf Becker
5042a302d6
fixed typo, preventing links with a certain app to be found
2008-03-10 21:01:28 +00:00
Stefan Becker
62ad7b05eb
added new countrys like AALAND ISLANDS or SERBIA AND MONTENEGRO and
...
marked old contrys with 'former'
2008-03-10 16:41:55 +00:00
Ralf Becker
b0ce76ad83
"added some aliases for iso-8859-1 which seemed to be used in some mails"
2008-03-10 12:57:27 +00:00
Ralf Becker
d4a1075c68
"fixed bug reported on the german list by webmaster-at-kmu-tools.de"
2008-03-09 21:14:05 +00:00
Ralf Becker
0da675bf6e
made all methods from html class static and removed the unnecessary singleton
2008-03-09 14:35:48 +00:00
Ralf Becker
97f63b43ff
some compatibility stuff for ADOdb<->PDO
2008-03-09 14:22:02 +00:00
Ralf Becker
0ac46f72c7
reworked to call egw_link (static)
2008-03-08 23:21:42 +00:00
Ralf Becker
6cfde1148b
"added (depricated) $link_table var"
2008-03-08 23:17:10 +00:00
Ralf Becker
b1c2d9ac47
titles was not caching the returned titles and new param for get_links_multiple() to cache the titles of all found links
2008-03-08 22:38:09 +00:00
Ralf Becker
15ca7e90ed
eGW wide index over all applications (superindex)
...
This index allows a fulltext search over all applications (or of
cause also a single app).
Whenever an applications stores an entry it calls:
boolean egw_index::save($app,$id,$owner,array $fields,array $cat_id=null)
which calls, as the application do when is deletes an entry (!),
boolean egw_index::delete($app,$id)
and then splits all fields into keywords and add these to the index by
boolean private egw_index::add($app,$id,$keyword).
Applications can then use the index to search for a given keyword
(and optional application):
array egw_index::search($keyword,$app=null) or
foreach(new egw_index($keyword,$app=null) as $app_id => $title)
To also allow to search by a category or keyword part of it, the index
also tracks the categories of the entries. Applications can choose to
only use it for category storage, or cat do it redundant in there own
table too. To retrieve the categories of one or multiple entries:
array egw_index::cats($app,$ids)
Applications can use a sql (sub-)query to get the id's of there app
matching a certain keyword and include that in there own queries:
string egw_index::sql_ids_by_keyword($app,$keyword)
Please note: the index knows nothing about ACL, so it's the task of
the application to ensure ACL rights.
2008-03-08 21:51:12 +00:00
Ralf Becker
a515bdeffb
reworked link classes:
...
- new public egw_link class, which has only static methods and can NOT be instanciated
- depricated bolink class, for existing code instanciating the bolink class in $egw->link
- new method and application hook *titles* to retrieve the title of multiple entries of an app in one go
- new method *get_links_multiple* to retrieve all links of multiple entries of an app
2008-03-08 21:41:20 +00:00
Ralf Becker
407b4defad
static strip_array_keys method to strip a colum-prefix from a result, docu update about depricated functions which use the internal result-set
2008-03-08 21:31:12 +00:00
Klaus Leithoff
85c7be0259
checking if apparray exist in __autoload, before looping through
2008-03-07 10:18:17 +00:00
Ralf Becker
108cb59d3c
fixed bug introduced by Connys performance stuff: function returned limited resultset with unset or empty start parameter
2008-03-06 16:11:49 +00:00
Ralf Becker
4f941b5a61
(hopefully) final fix: default for select() is now again ASSOC, but next_record() adds numerical indexes again, if they are required. That is a slight penality for old code, but gives full speed / lowest memory for new code.
2008-03-06 14:20:47 +00:00
Ralf Becker
046713e00f
temp. fixed problem introduced with last egw_db commit (db::f() not working with db::select()), thought I want to check how often that is used, as an only asociative fetchmod needs half the memory
2008-03-06 13:33:38 +00:00
Ralf Becker
e03425c90b
fixed an error with the initialisation of the static $db var (under LDAP and php4-restore sessions) and or by using the global db object without cloning it
2008-03-06 11:43:45 +00:00
Ralf Becker
9de6c2884f
added fetchmode parameter to query() and set it to ADODB_FETCH_ASSOC for select(), also added comment about how to avoid cloning the global db object and looping over result sets via the returned result object
2008-03-06 11:42:21 +00:00
Ralf Becker
42688f5cd2
removed unnecessary checkAuth function, because the regular eGW session cookie got not recogniced and all checks are done by the header include anyway
2008-03-04 08:33:08 +00:00
Ralf Becker
b638e9117b
set old vfs as default again for easier testing of the new UI
2008-03-03 12:17:08 +00:00
Ralf Becker
d2094b8958
search, lettersearch, merge content of subdirs (recursive display)
2008-03-03 12:16:11 +00:00
Ralf Becker
0af252ad55
ordering and limited resultsets
2008-03-03 07:53:43 +00:00
Ralf Becker
4df4fd9f06
first work on UI for a new filemanager and some vfs bugfixes and improvments
2008-03-02 21:44:15 +00:00
Ralf Becker
7da0cd0dd0
fixed static use of config::save_value()
2008-02-29 07:36:29 +00:00
Ralf Becker
3cd2ce8dd2
fixed mount command and enhanced egw_vfs::find()
2008-02-29 07:27:49 +00:00
Ralf Becker
ea5cda5310
fixed typo preventing non-root access
2008-02-29 07:23:14 +00:00
Ralf Becker
a0e5556c62
hooks to create, rename or delete user+group home-dirs (you need to run Admin >> register hooks!)
2008-02-27 10:33:48 +00:00