Passed
Push — master ( 961dcd...b956b0 )
by Joas
15:49 queued 12s
created
private/AppFramework/Middleware/Security/PasswordConfirmationMiddleware.php 1 patch
Indentation   +52 added lines, -52 removed lines patch added patch discarded remove patch
@@ -32,60 +32,60 @@
 block discarded – undo
32 32
 use OCP\User\Backend\IPasswordConfirmationBackend;
33 33
 
34 34
 class PasswordConfirmationMiddleware extends Middleware {
35
-	/** @var ControllerMethodReflector */
36
-	private $reflector;
37
-	/** @var ISession */
38
-	private $session;
39
-	/** @var IUserSession */
40
-	private $userSession;
41
-	/** @var ITimeFactory */
42
-	private $timeFactory;
43
-	/** @var array */
44
-	private $excludedUserBackEnds = ['user_saml' => true, 'user_globalsiteselector' => true];
35
+    /** @var ControllerMethodReflector */
36
+    private $reflector;
37
+    /** @var ISession */
38
+    private $session;
39
+    /** @var IUserSession */
40
+    private $userSession;
41
+    /** @var ITimeFactory */
42
+    private $timeFactory;
43
+    /** @var array */
44
+    private $excludedUserBackEnds = ['user_saml' => true, 'user_globalsiteselector' => true];
45 45
 
46
-	/**
47
-	 * PasswordConfirmationMiddleware constructor.
48
-	 *
49
-	 * @param ControllerMethodReflector $reflector
50
-	 * @param ISession $session
51
-	 * @param IUserSession $userSession
52
-	 * @param ITimeFactory $timeFactory
53
-	 */
54
-	public function __construct(ControllerMethodReflector $reflector,
55
-								ISession $session,
56
-								IUserSession $userSession,
57
-								ITimeFactory $timeFactory) {
58
-		$this->reflector = $reflector;
59
-		$this->session = $session;
60
-		$this->userSession = $userSession;
61
-		$this->timeFactory = $timeFactory;
62
-	}
46
+    /**
47
+     * PasswordConfirmationMiddleware constructor.
48
+     *
49
+     * @param ControllerMethodReflector $reflector
50
+     * @param ISession $session
51
+     * @param IUserSession $userSession
52
+     * @param ITimeFactory $timeFactory
53
+     */
54
+    public function __construct(ControllerMethodReflector $reflector,
55
+                                ISession $session,
56
+                                IUserSession $userSession,
57
+                                ITimeFactory $timeFactory) {
58
+        $this->reflector = $reflector;
59
+        $this->session = $session;
60
+        $this->userSession = $userSession;
61
+        $this->timeFactory = $timeFactory;
62
+    }
63 63
 
64
-	/**
65
-	 * @param Controller $controller
66
-	 * @param string $methodName
67
-	 * @throws NotConfirmedException
68
-	 */
69
-	public function beforeController($controller, $methodName) {
70
-		if ($this->reflector->hasAnnotation('PasswordConfirmationRequired')) {
71
-			$user = $this->userSession->getUser();
72
-			$backendClassName = '';
73
-			if ($user !== null) {
74
-				$backend = $user->getBackend();
75
-				if ($backend instanceof IPasswordConfirmationBackend) {
76
-					if (!$backend->canConfirmPassword($user->getUID())) {
77
-						return;
78
-					}
79
-				}
64
+    /**
65
+     * @param Controller $controller
66
+     * @param string $methodName
67
+     * @throws NotConfirmedException
68
+     */
69
+    public function beforeController($controller, $methodName) {
70
+        if ($this->reflector->hasAnnotation('PasswordConfirmationRequired')) {
71
+            $user = $this->userSession->getUser();
72
+            $backendClassName = '';
73
+            if ($user !== null) {
74
+                $backend = $user->getBackend();
75
+                if ($backend instanceof IPasswordConfirmationBackend) {
76
+                    if (!$backend->canConfirmPassword($user->getUID())) {
77
+                        return;
78
+                    }
79
+                }
80 80
 
81
-				$backendClassName = $user->getBackendClassName();
82
-			}
81
+                $backendClassName = $user->getBackendClassName();
82
+            }
83 83
 
84
-			$lastConfirm = (int) $this->session->get('last-password-confirm');
85
-			// we can't check the password against a SAML backend, so skip password confirmation in this case
86
-			if (!isset($this->excludedUserBackEnds[$backendClassName]) && $lastConfirm < ($this->timeFactory->getTime() - (30 * 60 + 15))) { // allow 15 seconds delay
87
-				throw new NotConfirmedException();
88
-			}
89
-		}
90
-	}
84
+            $lastConfirm = (int) $this->session->get('last-password-confirm');
85
+            // we can't check the password against a SAML backend, so skip password confirmation in this case
86
+            if (!isset($this->excludedUserBackEnds[$backendClassName]) && $lastConfirm < ($this->timeFactory->getTime() - (30 * 60 + 15))) { // allow 15 seconds delay
87
+                throw new NotConfirmedException();
88
+            }
89
+        }
90
+    }
91 91
 }
Please login to merge, or discard this patch.
lib/public/User/Backend/IPasswordConfirmationBackend.php 1 patch
Indentation   +4 added lines, -4 removed lines patch added patch discarded remove patch
@@ -29,8 +29,8 @@
 block discarded – undo
29 29
  */
30 30
 interface IPasswordConfirmationBackend {
31 31
 
32
-	/**
33
-	 * @since 15.0.0
34
-	 */
35
-	public function canConfirmPassword(string $uid): bool;
32
+    /**
33
+     * @since 15.0.0
34
+     */
35
+    public function canConfirmPassword(string $uid): bool;
36 36
 }
Please login to merge, or discard this patch.
apps/dav/lib/Migration/Version1008Date20181105112049.php 1 patch
Indentation   +13 added lines, -13 removed lines patch added patch discarded remove patch
@@ -32,18 +32,18 @@
 block discarded – undo
32 32
 
33 33
 class Version1008Date20181105112049 extends SimpleMigrationStep {
34 34
 
35
-	/**
36
-	 * @param IOutput $output
37
-	 * @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
38
-	 * @param array $options
39
-	 * @return null|ISchemaWrapper
40
-	 */
41
-	public function changeSchema(IOutput $output, Closure $schemaClosure, array $options) {
42
-		/** @var ISchemaWrapper $schema */
43
-		$schema = $schemaClosure();
44
-		$table = $schema->getTable('calendarsubscriptions');
45
-		$table->dropColumn('source_copy');
35
+    /**
36
+     * @param IOutput $output
37
+     * @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
38
+     * @param array $options
39
+     * @return null|ISchemaWrapper
40
+     */
41
+    public function changeSchema(IOutput $output, Closure $schemaClosure, array $options) {
42
+        /** @var ISchemaWrapper $schema */
43
+        $schema = $schemaClosure();
44
+        $table = $schema->getTable('calendarsubscriptions');
45
+        $table->dropColumn('source_copy');
46 46
 
47
-		return $schema;
48
-	}
47
+        return $schema;
48
+    }
49 49
 }
Please login to merge, or discard this patch.
apps/dav/lib/Migration/Version1008Date20181105104833.php 1 patch
Indentation   +13 added lines, -13 removed lines patch added patch discarded remove patch
@@ -32,18 +32,18 @@
 block discarded – undo
32 32
 
33 33
 class Version1008Date20181105104833 extends SimpleMigrationStep {
34 34
 
35
-	/**
36
-	 * @param IOutput $output
37
-	 * @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
38
-	 * @param array $options
39
-	 * @return null|ISchemaWrapper
40
-	 */
41
-	public function changeSchema(IOutput $output, Closure $schemaClosure, array $options) {
42
-		/** @var ISchemaWrapper $schema */
43
-		$schema = $schemaClosure();
44
-		$table = $schema->getTable('calendarsubscriptions');
45
-		$table->dropColumn('source');
35
+    /**
36
+     * @param IOutput $output
37
+     * @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
38
+     * @param array $options
39
+     * @return null|ISchemaWrapper
40
+     */
41
+    public function changeSchema(IOutput $output, Closure $schemaClosure, array $options) {
42
+        /** @var ISchemaWrapper $schema */
43
+        $schema = $schemaClosure();
44
+        $table = $schema->getTable('calendarsubscriptions');
45
+        $table->dropColumn('source');
46 46
 
47
-		return $schema;
48
-	}
47
+        return $schema;
48
+    }
49 49
 }
Please login to merge, or discard this patch.
lib/public/Security/ICrypto.php 1 patch
Indentation   +25 added lines, -25 removed lines patch added patch discarded remove patch
@@ -37,31 +37,31 @@
 block discarded – undo
37 37
  */
38 38
 interface ICrypto {
39 39
 
40
-	/**
41
-	 * @param string $message The message to authenticate
42
-	 * @param string $password Password to use (defaults to `secret` in config.php)
43
-	 * @return string Calculated HMAC
44
-	 * @since 8.0.0
45
-	 */
46
-	public function calculateHMAC(string $message, string $password = ''): string;
40
+    /**
41
+     * @param string $message The message to authenticate
42
+     * @param string $password Password to use (defaults to `secret` in config.php)
43
+     * @return string Calculated HMAC
44
+     * @since 8.0.0
45
+     */
46
+    public function calculateHMAC(string $message, string $password = ''): string;
47 47
 
48
-	/**
49
-	 * Encrypts a value and adds an HMAC (Encrypt-Then-MAC)
50
-	 * @param string $plaintext
51
-	 * @param string $password Password to encrypt, if not specified the secret from config.php will be taken
52
-	 * @return string Authenticated ciphertext
53
-	 * @since 8.0.0
54
-	 */
55
-	public function encrypt(string $plaintext, string $password = ''): string;
48
+    /**
49
+     * Encrypts a value and adds an HMAC (Encrypt-Then-MAC)
50
+     * @param string $plaintext
51
+     * @param string $password Password to encrypt, if not specified the secret from config.php will be taken
52
+     * @return string Authenticated ciphertext
53
+     * @since 8.0.0
54
+     */
55
+    public function encrypt(string $plaintext, string $password = ''): string;
56 56
 
57
-	/**
58
-	 * Decrypts a value and verifies the HMAC (Encrypt-Then-Mac)
59
-	 * @param string $authenticatedCiphertext
60
-	 * @param string $password Password to encrypt, if not specified the secret from config.php will be taken
61
-	 * @return string plaintext
62
-	 * @throws \Exception If the HMAC does not match
63
-	 * @throws \Exception If the decryption failed
64
-	 * @since 8.0.0
65
-	 */
66
-	public function decrypt(string $authenticatedCiphertext, string $password = ''): string;
57
+    /**
58
+     * Decrypts a value and verifies the HMAC (Encrypt-Then-Mac)
59
+     * @param string $authenticatedCiphertext
60
+     * @param string $password Password to encrypt, if not specified the secret from config.php will be taken
61
+     * @return string plaintext
62
+     * @throws \Exception If the HMAC does not match
63
+     * @throws \Exception If the decryption failed
64
+     * @since 8.0.0
65
+     */
66
+    public function decrypt(string $authenticatedCiphertext, string $password = ''): string;
67 67
 }
Please login to merge, or discard this patch.
apps/dav/lib/Migration/Version1008Date20181114084440.php 1 patch
Indentation   +23 added lines, -23 removed lines patch added patch discarded remove patch
@@ -33,27 +33,27 @@
 block discarded – undo
33 33
 class Version1008Date20181114084440 extends SimpleMigrationStep {
34 34
 
35 35
 
36
-	/**
37
-	 * @param IOutput $output
38
-	 * @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
39
-	 * @param array $options
40
-	 * @return null|ISchemaWrapper
41
-	 */
42
-	public function changeSchema(IOutput $output, Closure $schemaClosure, array $options) {
43
-		/** @var ISchemaWrapper $schema */
44
-		$schema = $schemaClosure();
45
-
46
-		if ($schema->hasTable('calendarchanges')) {
47
-			$calendarChangesTable = $schema->getTable('calendarchanges');
48
-			if ($calendarChangesTable->hasIndex('calendarid_calendartype_synctoken')) {
49
-				$calendarChangesTable->dropIndex('calendarid_calendartype_synctoken');
50
-			}
51
-
52
-			if (!$calendarChangesTable->hasIndex('calid_type_synctoken')) {
53
-				$calendarChangesTable->addIndex(['calendarid', 'calendartype', 'synctoken'], 'calid_type_synctoken');
54
-			}
55
-		}
56
-
57
-		return $schema;
58
-	}
36
+    /**
37
+     * @param IOutput $output
38
+     * @param Closure $schemaClosure The `\Closure` returns a `ISchemaWrapper`
39
+     * @param array $options
40
+     * @return null|ISchemaWrapper
41
+     */
42
+    public function changeSchema(IOutput $output, Closure $schemaClosure, array $options) {
43
+        /** @var ISchemaWrapper $schema */
44
+        $schema = $schemaClosure();
45
+
46
+        if ($schema->hasTable('calendarchanges')) {
47
+            $calendarChangesTable = $schema->getTable('calendarchanges');
48
+            if ($calendarChangesTable->hasIndex('calendarid_calendartype_synctoken')) {
49
+                $calendarChangesTable->dropIndex('calendarid_calendartype_synctoken');
50
+            }
51
+
52
+            if (!$calendarChangesTable->hasIndex('calid_type_synctoken')) {
53
+                $calendarChangesTable->addIndex(['calendarid', 'calendartype', 'synctoken'], 'calid_type_synctoken');
54
+            }
55
+        }
56
+
57
+        return $schema;
58
+    }
59 59
 }
Please login to merge, or discard this patch.
lib/public/Authentication/TwoFactorAuth/IActivatableByAdmin.php 1 patch
Indentation   +10 added lines, -10 removed lines patch added patch discarded remove patch
@@ -37,15 +37,15 @@
 block discarded – undo
37 37
  */
38 38
 interface IActivatableByAdmin extends IProvider {
39 39
 
40
-	/**
41
-	 * Enable this provider for the given user.
42
-	 *
43
-	 * @param IUser $user the user to activate this provider for
44
-	 *
45
-	 * @return void
46
-	 *
47
-	 * @since 15.0.0
48
-	 */
49
-	public function enableFor(IUser $user);
40
+    /**
41
+     * Enable this provider for the given user.
42
+     *
43
+     * @param IUser $user the user to activate this provider for
44
+     *
45
+     * @return void
46
+     *
47
+     * @since 15.0.0
48
+     */
49
+    public function enableFor(IUser $user);
50 50
 
51 51
 }
Please login to merge, or discard this patch.
lib/public/Authentication/TwoFactorAuth/IDeactivatableByAdmin.php 1 patch
Indentation   +10 added lines, -10 removed lines patch added patch discarded remove patch
@@ -37,15 +37,15 @@
 block discarded – undo
37 37
  */
38 38
 interface IDeactivatableByAdmin extends IProvider {
39 39
 
40
-	/**
41
-	 * Disable this provider for the given user.
42
-	 *
43
-	 * @param IUser $user the user to deactivate this provider for
44
-	 *
45
-	 * @return void
46
-	 *
47
-	 * @since 15.0.0
48
-	 */
49
-	public function disableFor(IUser $user);
40
+    /**
41
+     * Disable this provider for the given user.
42
+     *
43
+     * @param IUser $user the user to deactivate this provider for
44
+     *
45
+     * @return void
46
+     *
47
+     * @since 15.0.0
48
+     */
49
+    public function disableFor(IUser $user);
50 50
 
51 51
 }
Please login to merge, or discard this patch.
lib/private/RichObjectStrings/Validator.php 1 patch
Indentation   +83 added lines, -83 removed lines patch added patch discarded remove patch
@@ -38,87 +38,87 @@
 block discarded – undo
38 38
  */
39 39
 class Validator implements IValidator {
40 40
 
41
-	/** @var Definitions */
42
-	protected $definitions;
43
-
44
-	/** @var array[] */
45
-	protected $requiredParameters = [];
46
-
47
-	/**
48
-	 * Constructor
49
-	 *
50
-	 * @param Definitions $definitions
51
-	 */
52
-	public function __construct(Definitions $definitions) {
53
-		$this->definitions = $definitions;
54
-	}
55
-
56
-	/**
57
-	 * @param string $subject
58
-	 * @param array[] $parameters
59
-	 * @throws InvalidObjectExeption
60
-	 * @since 11.0.0
61
-	 */
62
-	public function validate($subject, array $parameters) {
63
-		$matches = [];
64
-		$result = preg_match_all('/\{([a-z0-9]+)\}/i', $subject, $matches);
65
-
66
-		if ($result === false) {
67
-			throw new InvalidObjectExeption();
68
-		}
69
-
70
-		if (!empty($matches[1])) {
71
-			foreach ($matches[1] as $parameter) {
72
-				if (!isset($parameters[$parameter])) {
73
-					throw new InvalidObjectExeption('Parameter is undefined');
74
-				}
75
-			}
76
-		}
77
-
78
-		foreach ($parameters as $parameter) {
79
-			if (!\is_array($parameter)) {
80
-				throw new InvalidObjectExeption('Parameter is malformed');
81
-			}
82
-
83
-			$this->validateParameter($parameter);
84
-		}
85
-	}
86
-
87
-	/**
88
-	 * @param array $parameter
89
-	 * @throws InvalidObjectExeption
90
-	 */
91
-	protected function validateParameter(array $parameter) {
92
-		if (!isset($parameter['type'])) {
93
-			throw new InvalidObjectExeption('Object type is undefined');
94
-		}
95
-
96
-		$definition = $this->definitions->getDefinition($parameter['type']);
97
-		$requiredParameters = $this->getRequiredParameters($parameter['type'], $definition);
98
-
99
-		$missingKeys = array_diff($requiredParameters, array_keys($parameter));
100
-		if (!empty($missingKeys)) {
101
-			throw new InvalidObjectExeption('Object is invalid');
102
-		}
103
-	}
104
-
105
-	/**
106
-	 * @param string $type
107
-	 * @param array $definition
108
-	 * @return string[]
109
-	 */
110
-	protected function getRequiredParameters($type, array $definition) {
111
-		if (isset($this->requiredParameters[$type])) {
112
-			return $this->requiredParameters[$type];
113
-		}
114
-
115
-		$this->requiredParameters[$type] = [];
116
-		foreach ($definition['parameters'] as $parameter => $data) {
117
-			if ($data['required']) {
118
-				$this->requiredParameters[$type][] = $parameter;
119
-			}
120
-		}
121
-
122
-		return $this->requiredParameters[$type];
123
-	}
41
+    /** @var Definitions */
42
+    protected $definitions;
43
+
44
+    /** @var array[] */
45
+    protected $requiredParameters = [];
46
+
47
+    /**
48
+     * Constructor
49
+     *
50
+     * @param Definitions $definitions
51
+     */
52
+    public function __construct(Definitions $definitions) {
53
+        $this->definitions = $definitions;
54
+    }
55
+
56
+    /**
57
+     * @param string $subject
58
+     * @param array[] $parameters
59
+     * @throws InvalidObjectExeption
60
+     * @since 11.0.0
61
+     */
62
+    public function validate($subject, array $parameters) {
63
+        $matches = [];
64
+        $result = preg_match_all('/\{([a-z0-9]+)\}/i', $subject, $matches);
65
+
66
+        if ($result === false) {
67
+            throw new InvalidObjectExeption();
68
+        }
69
+
70
+        if (!empty($matches[1])) {
71
+            foreach ($matches[1] as $parameter) {
72
+                if (!isset($parameters[$parameter])) {
73
+                    throw new InvalidObjectExeption('Parameter is undefined');
74
+                }
75
+            }
76
+        }
77
+
78
+        foreach ($parameters as $parameter) {
79
+            if (!\is_array($parameter)) {
80
+                throw new InvalidObjectExeption('Parameter is malformed');
81
+            }
82
+
83
+            $this->validateParameter($parameter);
84
+        }
85
+    }
86
+
87
+    /**
88
+     * @param array $parameter
89
+     * @throws InvalidObjectExeption
90
+     */
91
+    protected function validateParameter(array $parameter) {
92
+        if (!isset($parameter['type'])) {
93
+            throw new InvalidObjectExeption('Object type is undefined');
94
+        }
95
+
96
+        $definition = $this->definitions->getDefinition($parameter['type']);
97
+        $requiredParameters = $this->getRequiredParameters($parameter['type'], $definition);
98
+
99
+        $missingKeys = array_diff($requiredParameters, array_keys($parameter));
100
+        if (!empty($missingKeys)) {
101
+            throw new InvalidObjectExeption('Object is invalid');
102
+        }
103
+    }
104
+
105
+    /**
106
+     * @param string $type
107
+     * @param array $definition
108
+     * @return string[]
109
+     */
110
+    protected function getRequiredParameters($type, array $definition) {
111
+        if (isset($this->requiredParameters[$type])) {
112
+            return $this->requiredParameters[$type];
113
+        }
114
+
115
+        $this->requiredParameters[$type] = [];
116
+        foreach ($definition['parameters'] as $parameter => $data) {
117
+            if ($data['required']) {
118
+                $this->requiredParameters[$type][] = $parameter;
119
+            }
120
+        }
121
+
122
+        return $this->requiredParameters[$type];
123
+    }
124 124
 }
Please login to merge, or discard this patch.