Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/apps.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius Blüm <marius@lineone.io>2017-05-01 17:11:51 +0300
committerGitHub <noreply@github.com>2017-05-01 17:11:51 +0300
commit417234c5b774c5a70daad4d5c939895c6906e804 (patch)
tree5debfe51b39bff523ce0a0e31e44acab3a56fabd
parent9dde0b989e248328c54519be5a16cf5750a69ee0 (diff)
parentffb826759d4e3ef34808bd83492d8e5bfbb311e2 (diff)
Merge branch 'master' into external-fix-links
-rw-r--r--issue_template.md89
-rw-r--r--user_external/README.md6
-rw-r--r--user_external/lib/imap.php23
3 files changed, 100 insertions, 18 deletions
diff --git a/issue_template.md b/issue_template.md
index 3377504e6..5219a4f7e 100644
--- a/issue_template.md
+++ b/issue_template.md
@@ -1,5 +1,9 @@
### Affected apps
Tell us which app(s) you are talking about
+### Steps to reproduce
+1.
+2.
+3.
### Expected behaviour
Tell us what should happen
@@ -7,26 +11,81 @@ Tell us what should happen
### Actual behaviour
Tell us what happens instead
-### Steps to reproduce
-1.
-2.
-3.
-
### Server configuration
-Operating system:
+<!--
+You can use the Issue Template application to prefill most of the required information: https://apps.nextcloud.com/apps/issuetemplate
+-->
+
+**Operating system**:
+
+**Web server:**
+
+**Database:**
+
+**PHP version:**
+
+**Server version:** (see your admin page)
-Web server:
+**Calendar version:** (see the apps page)
-Database:
+**Updated from an older installed version or fresh install:**
-PHP version:
+**Signing status (ownCloud/Nextcloud 9.0 and above):**
-ownCloud version:
+```
+Login as admin user into your cloud and access
+http://example.com/index.php/settings/integrity/failed
+paste the results here.
+```
+
+**List of activated apps:**
+
+```
+If you have access to your command line run e.g.:
+sudo -u www-data php occ app:list
+from within your instance's installation folder
+```
+
+**Nextcloud configuration:**
+
+```
+If you have access to your command line run e.g.:
+sudo -u www-data php occ config:list system
+from within your instance's installation folder
+
+or
+
+Insert your config.php content here
+Make sure to remove all sensitive content such as passwords. (e.g. database password, passwordsalt, secret, smtp password, …)
+```
+
+**Are you using external storage, if yes which one:** local/smb/sftp/...
+
+**Are you using encryption:** yes/no
+
+**Are you using an external user-backend, if yes which one:** LDAP/ActiveDirectory/Webdav/...
+
+#### LDAP configuration (delete this part if not used)
+
+```
+With access to your command line run e.g.:
+sudo -u www-data php occ ldap:show-config
+from within your instance's installation folder
+
+Without access to your command line download the data/owncloud.db to your local
+computer or access your SQL server remotely and run the select query:
+SELECT * FROM `oc_appconfig` WHERE `appid` = 'user_ldap';
+
+
+Be sure to replace sensitive data as the name/IP-address of your LDAP server or groups.
+```
### Client configuration
-Browser:
+**Browser:**
+
+**Operating system:**
-Operating system:
+**CalDAV-clients:**
### Logs
#### Web server error log
@@ -34,9 +93,9 @@ Operating system:
Insert your webserver log here
```
-#### ownCloud log (data/owncloud.log)
+#### Log file (data/nextcloud.log)
```
-Insert your ownCloud log here
+Insert your nextcloud.log file here
```
#### Browser log
@@ -44,6 +103,6 @@ Insert your ownCloud log here
Insert your browser log here, this could for example include:
a) The javascript console log
-b) The network log
+b) The network log
c) ...
```
diff --git a/user_external/README.md b/user_external/README.md
index 7e26cd9aa..e9e99e1c5 100644
--- a/user_external/README.md
+++ b/user_external/README.md
@@ -66,12 +66,16 @@ Add the following to your `config.php`:
array(
'class' => 'OC_User_IMAP',
'arguments' => array(
- '{127.0.0.1:143/imap/readonly}',
+ '{127.0.0.1:143/imap/readonly}', 'example.com'
),
),
),
This connects to the IMAP server on IP `127.0.0.1`, in readonly mode.
+If a domain name (e.g. example.com) is specified, then this makes sure that
+only users from this domain will be allowed to login. After successfull
+login the domain part will be striped and the rest used as username in
+NextCloud. e.g. 'username@example.com' will be 'username' in NextCloud.
Read the [imap_open][0] PHP manual page to learn more about the allowed
parameters.
diff --git a/user_external/lib/imap.php b/user_external/lib/imap.php
index 3ccebf094..4c5c57a78 100644
--- a/user_external/lib/imap.php
+++ b/user_external/lib/imap.php
@@ -17,16 +17,19 @@
*/
class OC_User_IMAP extends \OCA\user_external\Base {
private $mailbox;
+ private $domain;
/**
* Create new IMAP authentication provider
*
* @param string $mailbox PHP imap_open mailbox definition, e.g.
* {127.0.0.1:143/imap/readonly}
+ * @param string $domain If provided, loging will be restricted to this domain
*/
- public function __construct($mailbox) {
+ public function __construct($mailbox, $domain = '') {
parent::__construct($mailbox);
$this->mailbox=$mailbox;
+ $this->domain=$domain;
}
/**
@@ -42,7 +45,23 @@ class OC_User_IMAP extends \OCA\user_external\Base {
OCP\Util::writeLog('user_external', 'ERROR: PHP imap extension is not installed', OCP\Util::ERROR);
return false;
}
- $mbox = @imap_open($this->mailbox, $uid, $password, OP_HALFOPEN, 1);
+
+ // Check if we only want logins from ONE domain and strip the domain part from UID
+ if($this->domain != '') {
+ $pieces = explode('@', $uid);
+ if(count($pieces) == 1) {
+ $username = $uid . "@" . $this->domain;
+ }elseif((count($pieces) == 2) and ($pieces[1] == $this->domain)) {
+ $username = $uid;
+ $uid = $pieces[0];
+ }else{
+ return false;
+ }
+ }else{
+ $username = $uid;
+ }
+
+ $mbox = @imap_open($this->mailbox, $username, $password, OP_HALFOPEN, 1);
imap_errors();
imap_alerts();
if($mbox !== FALSE) {