mirror of
https://github.com/EGroupware/egroupware.git
synced 2025-01-03 04:29:28 +01:00
Sharing updates
- admin can set / change share password, encrypted using system - admin can change share owner - now recording last modified date / user when changing share - change encrypted password column name - new share column for encrypted type
This commit is contained in:
parent
8a1869dcdc
commit
e4ef392d11
@ -11,7 +11,7 @@
|
|||||||
/* Basic information about this app */
|
/* Basic information about this app */
|
||||||
$setup_info['api']['name'] = 'api';
|
$setup_info['api']['name'] = 'api';
|
||||||
$setup_info['api']['title'] = 'EGroupware API';
|
$setup_info['api']['title'] = 'EGroupware API';
|
||||||
$setup_info['api']['version'] = '23.1.003';
|
$setup_info['api']['version'] = '23.1.004';
|
||||||
$setup_info['api']['versions']['current_header'] = '1.29';
|
$setup_info['api']['versions']['current_header'] = '1.29';
|
||||||
// maintenance release in sync with changelog in doc/rpm-build/debian.changes
|
// maintenance release in sync with changelog in doc/rpm-build/debian.changes
|
||||||
$setup_info['api']['versions']['maintenance_release'] = '23.1.20230728';
|
$setup_info['api']['versions']['maintenance_release'] = '23.1.20230728';
|
||||||
|
@ -397,8 +397,12 @@ $phpgw_baseline = array(
|
|||||||
'share_writable' => array('type' => 'int','precision' => '1','nullable' => False,'default' => '0','comment' => '0=readable, 1=writable'),
|
'share_writable' => array('type' => 'int','precision' => '1','nullable' => False,'default' => '0','comment' => '0=readable, 1=writable'),
|
||||||
'share_with' => array('type' => 'varchar','precision' => '4096','comment' => 'email addresses, comma seperated'),
|
'share_with' => array('type' => 'varchar','precision' => '4096','comment' => 'email addresses, comma seperated'),
|
||||||
'share_passwd' => array('type' => 'varchar','precision' => '128','comment' => 'optional password-hash'),
|
'share_passwd' => array('type' => 'varchar','precision' => '128','comment' => 'optional password-hash'),
|
||||||
'share_password' => array('type' => 'varchar', 'precision' => '128',
|
'share_pw_reversable' => array('type' => 'varchar', 'precision' => '128',
|
||||||
'comment' => 'optional reversible password'),
|
'comment' => 'optional reversible password'),
|
||||||
|
'share_encryption' => array('type' => 'int', 'nullable' => true,
|
||||||
|
'comment' => 'Type of encryption, user or system (See Credentials)'),
|
||||||
|
'share_modified' => array('type' => 'timestamp', 'precision' => '8', 'nullable' => False),
|
||||||
|
'share_modifier' => array('type' => 'int', 'meta' => 'user', 'precision' => '4'),
|
||||||
'share_created' => array('type' => 'timestamp','nullable' => False,'comment' => 'creation date'),
|
'share_created' => array('type' => 'timestamp','nullable' => False,'comment' => 'creation date'),
|
||||||
'share_last_accessed' => array('type' => 'timestamp','comment' => 'last access of share')
|
'share_last_accessed' => array('type' => 'timestamp','comment' => 'last access of share')
|
||||||
),
|
),
|
||||||
|
@ -914,3 +914,22 @@ function api_upgrade23_1_002()
|
|||||||
|
|
||||||
return $GLOBALS['setup_info']['api']['currentver'] = '23.1.003';
|
return $GLOBALS['setup_info']['api']['currentver'] = '23.1.003';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function api_upgrade23_1_003()
|
||||||
|
{
|
||||||
|
$GLOBALS['egw_setup']->oProc->RenameColumn('egw_sharing', 'share_password', 'share_pw_reversable');
|
||||||
|
$GLOBALS['egw_setup']->oProc->AddColumn('egw_sharing', 'share_encryption',
|
||||||
|
array(
|
||||||
|
'type' => 'int', 'nullable' => true,
|
||||||
|
'comment' => 'Type of encryption, user or system (See Credentials)'
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$GLOBALS['egw_setup']->oProc->AddColumn('egw_sharing', 'share_modified',
|
||||||
|
array('type' => 'timestamp', 'precision' => '8', 'nullable' => False),
|
||||||
|
);
|
||||||
|
$GLOBALS['egw_setup']->oProc->AddColumn('egw_sharing', 'share_modifier',
|
||||||
|
array('type' => 'int', 'meta' => 'user', 'precision' => '4')
|
||||||
|
);
|
||||||
|
return $GLOBALS['setup_info']['api']['currentver'] = '23.1.004';
|
||||||
|
}
|
@ -650,6 +650,8 @@ class Sharing
|
|||||||
'share_token' => self::token(),
|
'share_token' => self::token(),
|
||||||
'share_path' => $path,
|
'share_path' => $path,
|
||||||
'share_owner' => Vfs::$user,
|
'share_owner' => Vfs::$user,
|
||||||
|
'share_modified' => (new DateTime('now', DateTime::$server_timezone))->format('ts'),
|
||||||
|
'share_modifier' => Vfs::$user,
|
||||||
'share_with' => implode(',', (array)$recipients),
|
'share_with' => implode(',', (array)$recipients),
|
||||||
'share_created' => time(),
|
'share_created' => time(),
|
||||||
)+$extra, false, __LINE__, __FILE__, Db::API_APPNAME);
|
)+$extra, false, __LINE__, __FILE__, Db::API_APPNAME);
|
||||||
|
@ -101,6 +101,10 @@ class filemanager_hooks
|
|||||||
'Quota' => Egw::link('/index.php', 'menuaction=filemanager.filemanager_admin.quota&ajax=true'),
|
'Quota' => Egw::link('/index.php', 'menuaction=filemanager.filemanager_admin.quota&ajax=true'),
|
||||||
'VFS mounts and versioning' => Egw::link('/index.php', 'menuaction=filemanager.filemanager_admin.index&ajax=true'),
|
'VFS mounts and versioning' => Egw::link('/index.php', 'menuaction=filemanager.filemanager_admin.index&ajax=true'),
|
||||||
);
|
);
|
||||||
|
if($GLOBALS['egw_info']['user']['apps']['stylite'])
|
||||||
|
{
|
||||||
|
$file['Sharing'] = Egw::link('/index.php', 'menuaction=filemanager.filemanager_shares.index&admin=true&ajax=true');
|
||||||
|
}
|
||||||
if ($location == 'admin')
|
if ($location == 'admin')
|
||||||
{
|
{
|
||||||
display_section(self::$appname,$file);
|
display_section(self::$appname,$file);
|
||||||
|
@ -91,7 +91,10 @@ class filemanager_shares extends filemanager_ui
|
|||||||
}
|
}
|
||||||
unset($query['col_filter']['share_passwd']);
|
unset($query['col_filter']['share_passwd']);
|
||||||
|
|
||||||
|
if(!$query['admin'] || !isset($GLOBALS['egw_info']['apps']['admin']))
|
||||||
|
{
|
||||||
$query['col_filter']['share_owner'] = $GLOBALS['egw_info']['user']['account_id'];
|
$query['col_filter']['share_owner'] = $GLOBALS['egw_info']['user']['account_id'];
|
||||||
|
}
|
||||||
|
|
||||||
$readonlys = null;
|
$readonlys = null;
|
||||||
$total = Sharing::so()->get_rows($query, $rows, $readonlys);
|
$total = Sharing::so()->get_rows($query, $rows, $readonlys);
|
||||||
@ -142,7 +145,7 @@ class filemanager_shares extends filemanager_ui
|
|||||||
'group' => 1,
|
'group' => 1,
|
||||||
'icon' => 'edit',
|
'icon' => 'edit',
|
||||||
'allowOnMultiple' => false,
|
'allowOnMultiple' => false,
|
||||||
'popup' => '500x200',
|
'popup' => '600x200',
|
||||||
'url' => 'menuaction=stylite.stylite_filemanager.edit_share&share_id=$id',
|
'url' => 'menuaction=stylite.stylite_filemanager.edit_share&share_id=$id',
|
||||||
'disableIfNoEPL' => true
|
'disableIfNoEPL' => true
|
||||||
),
|
),
|
||||||
@ -204,6 +207,11 @@ class filemanager_shares extends filemanager_ui
|
|||||||
unset($content['nm']['id']);
|
unset($content['nm']['id']);
|
||||||
}
|
}
|
||||||
$content['is_setup'] = self::$is_setup;
|
$content['is_setup'] = self::$is_setup;
|
||||||
|
$content['nm']['admin'] = $content['nm']['admin'] || !empty($GLOBALS['egw_info']['user']['apps']['admin']) && $_GET['admin'];
|
||||||
|
if($content['nm']['admin'])
|
||||||
|
{
|
||||||
|
$content['nm']['columnselection_pref'] = "filemanager.shares.rows-admin";
|
||||||
|
}
|
||||||
|
|
||||||
$sel_options = array(
|
$sel_options = array(
|
||||||
'type' => Sharing::$modes,
|
'type' => Sharing::$modes,
|
||||||
@ -215,6 +223,7 @@ class filemanager_shares extends filemanager_ui
|
|||||||
unset($sel_options['type'][Sharing::ATTACH]);
|
unset($sel_options['type'][Sharing::ATTACH]);
|
||||||
|
|
||||||
$tpl = new Etemplate('filemanager.shares');
|
$tpl = new Etemplate('filemanager.shares');
|
||||||
|
$tpl->set_dom_id($tpl->name . ($content['nm']['admin'] ? '-admin' : ''));
|
||||||
$tpl->exec('filemanager.filemanager_shares.index', $content, $sel_options, null, $content);
|
$tpl->exec('filemanager.filemanager_shares.index', $content, $sel_options, null, $content);
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -4,6 +4,7 @@
|
|||||||
<template id="filemanager.shares.rows" template="" lang="" group="0" version="14.2.001">
|
<template id="filemanager.shares.rows" template="" lang="" group="0" version="14.2.001">
|
||||||
<grid width="100%">
|
<grid width="100%">
|
||||||
<columns>
|
<columns>
|
||||||
|
<column width="10%" disabled="!@admin"/>
|
||||||
<column width="30%"/>
|
<column width="30%"/>
|
||||||
<column width="100"/>
|
<column width="100"/>
|
||||||
<column width="30%"/>
|
<column width="30%"/>
|
||||||
@ -14,6 +15,7 @@
|
|||||||
</columns>
|
</columns>
|
||||||
<rows>
|
<rows>
|
||||||
<row class="th">
|
<row class="th">
|
||||||
|
<et2-nextmatch-header-account id="share_owner" emptyLabel="Shared from"/>
|
||||||
<nextmatch-sortheader label="Path" id="share_path"/>
|
<nextmatch-sortheader label="Path" id="share_path"/>
|
||||||
<et2-nextmatch-header-filter id="type" emptyLabel="All types"/>
|
<et2-nextmatch-header-filter id="type" emptyLabel="All types"/>
|
||||||
<nextmatch-header label="Shared with" id="shared_with"/>
|
<nextmatch-header label="Shared with" id="shared_with"/>
|
||||||
@ -23,6 +25,7 @@
|
|||||||
<nextmatch-sortheader label="Last accessed" id="share_last_accessed"/>
|
<nextmatch-sortheader label="Last accessed" id="share_last_accessed"/>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
|
<et2-select-account_ro id="${row}[share_owner]"/>
|
||||||
<vfs id="${row}[share_path]"/>
|
<vfs id="${row}[share_path]"/>
|
||||||
<et2-select id="${row}[type]" readonly="true"></et2-select>
|
<et2-select id="${row}[type]" readonly="true"></et2-select>
|
||||||
<et2-description id="${row}[share_with]"></et2-description>
|
<et2-description id="${row}[share_with]"></et2-description>
|
||||||
|
Loading…
Reference in New Issue
Block a user