Permalink
Browse files

New plugin access.smbicewind

  • Loading branch information...
1 parent 91faaa3 commit 0ba8d30d26feafd74a3f432b48e1dfd7545266f1 @c12simple c12simple committed Aug 22, 2016
@@ -0,0 +1,14 @@
+{
+ "name": "Access SMB IceWind",
+ "description": "Access SMB use wrapper of IceWind",
+ "homepage": "https://pydio.com/",
+ "license":"AGPL-3.0",
+ "autoload": {
+ "psr-4": {
+ "Pydio\\access\\smbicewind\\": "./src"
+ }
+ },
+ "require": {
+ "icewind/smb": "dev-master"
+ }
+}
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ajxpdriver name="smbicewind" enabled="false" label="CONF_MESSAGE[Samba via libsbmclient]" description="CONF_MESSAGE[Browse a Samba Server]" mixins="credentials_consumer,filesystem_commons,slug_provider,template_provider" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="file:../core.ajaxplorer/ajxp_registry.xsd">
+ <client_settings icon="plugins/access.fs/icon.png" description_template="{HOST}{PATH}" iconClass="icon-sitemap">
+ <resources>
+ <i18n namespace="smbicewind_access" path="plugins/access.smbicewind/i18n"/>
+ </resources>
+ </client_settings>
+ <server_settings>
+ <param name="HOST" type="string" label="CONF_MESSAGE[Host]" description="CONF_MESSAGE[Server IP or name, do not use add slashes or backward slashes]" mandatory="true" default="SERVER_IP"/>
+ <param name="PATH" type="string" label="CONF_MESSAGE[Uri]" description="CONF_MESSAGE[Path to the share and complementary URI if necessary]" mandatory="false"/>
+ <param name="DOMAIN" type="string" label="CONF_MESSAGE[Domain]" description="CONF_MESSAGE[Default domain to use with session credentials. The domain name ends with '/' or '\' depend on your system. Example: MyDomain\ or YourDomain/. Default is /]" mandatory="false"/>
+ <param name="CHMOD_VALUE" type="string" label="CONF_MESSAGE[File Creation Mask]" description="CONF_MESSAGE[Optionnaly apply a chmod operation. Value must be numeric, like 0777, 0644, etc.]" default="0666"/>
+ <global_param name="SMBCLIENT" type="string" label="CONF_MESSAGE[Smbclient]" description="CONF_MESSAGE[Path to smbclient executable, considered to be in the path by default.]" mandatory="true" default="smbclient"/>
+ <global_param name="SMB_ENABLE_ZIP" type="boolean" label="CONF_MESSAGE[Enable Zip]" description="CONF_MESSAGE[Enable zip creation for repositories using Samba access. Make sure that you are using a very fast network, otherwise it will be very long!]" mandatory="false" default="false"/>
+ <global_param group="MIXIN_MESSAGE[Metadata and indexation]" name="DEFAULT_METASOURCES" type="string" label="MIXIN_MESSAGE[Default Metasources]" description="MIXIN_MESSAGE[Comma separated list of metastore and meta plugins, that will be automatically applied to all repositories created with this driver]" mandatory="false" default="metastore.serial,meta.filehasher,index.lucene"/>
+ </server_settings>
+ <registry_contributions>
+ <external_file filename="plugins/access.fs/fsTemplatePart.xml" include="client_configs/*" exclude=""/>
+ <external_file filename="plugins/access.fs/fsActions.xml" include="actions/*" exclude=""/>
+ <external_file filename="plugins/access.fs/manifest.xml" include="registry_contributions/client_configs/*" exclude=""/>
+ <external_file filename="plugins/access.fs/fsActions.xml" include="client_configs/*" exclude=""/>
+ <external_file filename="plugins/access.fs/manifest.xml" include="registry_contributions/hooks/*" exclude=""/>
+ </registry_contributions>
+ <dependencies>
+ <pluginClass pluginName="access.fs"/>
+ </dependencies>
+ <class_definition filename="plugins/access.smbicewind/src/SmbIceWindAccessDriver.php" classname="Pydio\Access\Driver\StreamProvider\SmbIceWind\smbIceWindAccessDriver"/>
+ <class_stream_wrapper filename="plugins/access.smbicewind/src/SmbIceWindAccessWrapper.php" classname="Pydio\Access\Driver\StreamProvider\SmbIceWind\smbIceWindAccessWrapper" protocol="ajxp.smbicewind"/>
+</ajxpdriver>
@@ -0,0 +1,64 @@
+<?php
+/*
+ * Copyright 2007-2013 Charles du Jeu - Abstrium SAS <team (at) pyd.io>
+ * This file is part of Pydio.
+ *
+ * Pydio is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Pydio is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Affero General Public License for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public License
+ * along with Pydio. If not, see <http://www.gnu.org/licenses/>.
+ *
+ * The latest code can be found at <http://pyd.io/>.
+ *
+ */
+
+namespace Pydio\Access\Driver\StreamProvider\SmbIceWind;
+
+use DOMNode;
+use Psr\Http\Message\ResponseInterface;
+use Psr\Http\Message\ServerRequestInterface;
+use Psr\Http\Message\UploadedFileInterface;
+use Pydio\Access\Core\Model\AJXP_Node;
+use Pydio\Access\Core\Model\UserSelection;
+use Pydio\Access\Core\RecycleBinManager;
+use Pydio\Access\Driver\StreamProvider\FS\fsAccessDriver;
+use Pydio\Core\Http\Response\SerializableResponseStream;
+use Pydio\Core\Model\ContextInterface;
+use Pydio\Core\Services\ConfService;
+use Pydio\Core\Controller\Controller;
+use Pydio\Core\Exception\PydioException;
+use Pydio\Core\Utils\Utils;
+use Pydio\Core\Controller\XMLWriter;
+use Pydio\Core\Utils\TextEncoder;
+use Pydio\Tasks\Task;
+use Pydio\Tasks\TaskService;
+
+class smbIcewindAccessDriver extends fsAccessDriver{
+
+ protected function initRepository(ContextInterface $contextInterface)
+ {
+ require_once AJXP_INSTALL_PATH . "/" . AJXP_PLUGINS_FOLDER . "/access.smbicewind/vendor/autoload.php";
+ if (is_array($this->pluginConf)) {
+ $this->driverConf = $this->pluginConf;
+ } else {
+ $this->driverConf = array();
+ }
+ $this->detectStreamWrapper(true);
+ $this->urlBase = $contextInterface->getUrlBase();
+ if (strpos($this->urlBase,"ajxp_meta") !== false){
+ $test = "tet";
+ }
+ $recycle = $contextInterface->getRepository()->getContextOption($contextInterface, "RECYCLE_BIN");
+ if ($recycle != "") {
+ RecycleBinManager::init($contextInterface->getUrlBase(), "/".$recycle);
+ }
+ }
+}
Oops, something went wrong.

0 comments on commit 0ba8d30

Please sign in to comment.