diff --git a/plugins/kolab_auth/kolab_auth.php b/plugins/kolab_auth/kolab_auth.php index b13ea930..fb3b0515 100644 --- a/plugins/kolab_auth/kolab_auth.php +++ b/plugins/kolab_auth/kolab_auth.php @@ -41,6 +41,9 @@ class kolab_auth extends rcube_plugin $this->add_hook('startup', array($this, 'startup')); $this->add_hook('user_create', array($this, 'user_create')); + // Hook for password change + $this->add_hook('password_ldap_bind', array($this, 'password_ldap_bind')); + // Hooks related to "Login As" feature $this->add_hook('template_object_loginform', array($this, 'login_form')); $this->add_hook('storage_connect', array($this, 'imap_connect')); @@ -448,6 +451,20 @@ class kolab_auth extends rcube_plugin return $args; } + /** + * Set user DN for password change (password plugin with ldap_simple driver) + */ + public function password_ldap_bind($args) + { + $args['user_dn'] = $_SESSION['kolab_dn']; + + $rcmail = rcube::get_instance(); + + $rcmail->config->set('password_ldap_method', 'user'); + + return $args; + } + /** * Sets SASL Proxy login/password for IMAP and Managesieve auth */ diff --git a/plugins/owncloud/copy_to_owncload/apps/kolab_auth/appinfo/app.php b/plugins/owncloud/copy_to_owncload/apps/kolab_auth/appinfo/app.php deleted file mode 100644 index 02e3e151..00000000 --- a/plugins/owncloud/copy_to_owncload/apps/kolab_auth/appinfo/app.php +++ /dev/null @@ -1,51 +0,0 @@ - 'https:///', - 'kolabsecret' => '', - -*/ - - -// check for kolab auth token -if (!OC_User::isLoggedIn() && !empty($_GET['kolab_auth'])) { - OCP\Util::writeLog('kolab_auth', 'got kolab auth token', OCP\Util::INFO); - - // decode auth data from Roundcube - parse_str(oc_kolab_decode($_GET['kolab_auth']), $request); - - // send back as POST request with session cookie - $postdata = http_build_query($request, '', '&'); - - // add request signature using secret key - $postdata .= '&hmac=' . hash_hmac('sha256', $postdata, OC_Config::getValue('kolabsecret', '')); - - $context = stream_context_create(array( - 'http' => array( - 'method' => 'POST', - 'header'=> "Content-type: application/x-www-form-urlencoded\r\n" - . "Content-Length: " . strlen($postdata) . "\r\n" - . "Cookie: " . $request['cname'] . '=' . $request['session'] . "\r\n", - 'content' => $postdata, - ) - ) - ); - - $url = !empty($_SERVER['HTTP_REFERER']) ? dirname($_SERVER['HTTP_REFERER']) . '/' : OC_Config::getValue('kolaburl', ''); - $auth = @json_decode(file_get_contents($url . '?_action=owncloudsso', false, $context), true); - - // fake HTTP authentication with user credentials received from Roundcube - if ($auth['user'] && $auth['pass']) { - $_SERVER['PHP_AUTH_USER'] = $auth['user']; - $_SERVER['PHP_AUTH_PW'] = $auth['pass']; - } -} - -function oc_kolab_decode($str) -{ - // TODO: chose a more sophisticated encryption method - return base64_decode(str_pad(strrev($str), strlen($str) % 4, '=', STR_PAD_RIGHT)); -} - diff --git a/plugins/owncloud/copy_to_owncload/apps/kolab_auth/appinfo/info.xml b/plugins/owncloud/copy_to_owncload/apps/kolab_auth/appinfo/info.xml deleted file mode 100644 index aad9cea7..00000000 --- a/plugins/owncloud/copy_to_owncload/apps/kolab_auth/appinfo/info.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - kolab_auth - Kolab user authentication - Allow to authenticate an existing Kolab web client session - AGPL - Thomas Bruederli - 4.9 - true - - - - diff --git a/plugins/owncloud/copy_to_owncload/apps/kolab_auth/appinfo/version b/plugins/owncloud/copy_to_owncload/apps/kolab_auth/appinfo/version deleted file mode 100644 index 6e8bf73a..00000000 --- a/plugins/owncloud/copy_to_owncload/apps/kolab_auth/appinfo/version +++ /dev/null @@ -1 +0,0 @@ -0.1.0 diff --git a/plugins/owncloud/copy_to_owncload/themes/kolab/core/css/styles.css b/plugins/owncloud/copy_to_owncload/themes/kolab/core/css/styles.css deleted file mode 100755 index 290721bc..00000000 --- a/plugins/owncloud/copy_to_owncload/themes/kolab/core/css/styles.css +++ /dev/null @@ -1,15 +0,0 @@ - -#content, -#controls, -#navigation { - top: 0px; -} - -#navigation #settings { - bottom: 0px; -} - -#leftcontent, .leftcontent, -#rightcontent, .rightcontent { - top: 2.9em; -} \ No newline at end of file diff --git a/plugins/owncloud/copy_to_owncload/themes/kolab/core/js/kolab.js b/plugins/owncloud/copy_to_owncload/themes/kolab/core/js/kolab.js deleted file mode 100644 index f5204567..00000000 --- a/plugins/owncloud/copy_to_owncload/themes/kolab/core/js/kolab.js +++ /dev/null @@ -1,58 +0,0 @@ - -function kolab_connector() -{ - var remote; - - // public members - this.window = window; - - // export public methods - this.init = init; - this.init_picker = init_picker; - this.list_files = list_files; - - function init(rcube) - { - remote = rcube; - } - - function init_picker(rcube) - { - remote = rcube; - - if (window.FileActions) { - // reset already registered actions - // FileActions.actions.file = {}; - - FileActions.register('file','Pick', OC.PERMISSION_READ, '', function(filename){ - var dir = $('#dir').val(); - remote.file_picked(dir, filename); - }); - FileActions.setDefault('file', 'Pick'); - } - } - - function list_files() - { - var files = []; - $('#fileList tr').each(function(item){ - var row = $(item), - type = row.attrib('data-type'), - file = row.attrib('data-file'), - mime = row.attrib('data-mime'); - - if (type == 'file') { - files.push(file); - } - }); - - return files; - } -} - -$(document).ready(function(){ - // connect with Roundcube running in parent window - if (window.parent && parent.rcmail && parent.rcube_owncloud) { - parent.rcube_owncloud.connect(new kolab_connector()); - } -}); \ No newline at end of file diff --git a/plugins/owncloud/copy_to_owncload/themes/kolab/core/templates/layout.user.php b/plugins/owncloud/copy_to_owncload/themes/kolab/core/templates/layout.user.php deleted file mode 100644 index a588eacb..00000000 --- a/plugins/owncloud/copy_to_owncload/themes/kolab/core/templates/layout.user.php +++ /dev/null @@ -1,56 +0,0 @@ - - - - <?php echo isset($_['application']) && !empty($_['application'])?$_['application'].' | ':'' ?>ownCloud <?php echo OC_User::getUser()?' ('.OC_User::getUser().') ':'' ?> - - - - - - - - - - - - $value) { - echo "$name='$value' "; - }; - echo '/>'; - ?> - - - - - - -
- -
- -