Merge pull request #9576 from owncloud/bcmath-check
LDAP Active Directory Primary Groups support depends on bcmath module
This commit is contained in:
commit
1d520108c5
2 changed files with 35 additions and 0 deletions
|
@ -1298,6 +1298,12 @@ class Access extends LDAPUtility implements user\IUserTools {
|
|||
*/
|
||||
public function convertSID2Str($sid) {
|
||||
try {
|
||||
if(!function_exists('bcadd')) {
|
||||
\OCP\Util::writeLog('user_ldap',
|
||||
'You need to install bcmath module for PHP to have support ' .
|
||||
'for AD primary groups', \OCP\Util::WARN);
|
||||
throw new \Exception('missing bcmath module');
|
||||
}
|
||||
$srl = ord($sid[0]);
|
||||
$numberSubID = ord($sid[1]);
|
||||
$x = substr($sid, 2, 6);
|
||||
|
|
|
@ -82,6 +82,10 @@ class Test_Access extends \PHPUnit_Framework_TestCase {
|
|||
list($lw, $con, $um) = $this->getConnecterAndLdapMock();
|
||||
$access = new Access($con, $lw, $um);
|
||||
|
||||
if(!function_exists('\bcadd')) {
|
||||
$this->markTestSkipped('bcmath not available');
|
||||
}
|
||||
|
||||
$sidBinary = file_get_contents(__DIR__ . '/data/sid.dat');
|
||||
$sidExpected = 'S-1-5-21-249921958-728525901-1594176202';
|
||||
|
||||
|
@ -92,12 +96,37 @@ class Test_Access extends \PHPUnit_Framework_TestCase {
|
|||
list($lw, $con, $um) = $this->getConnecterAndLdapMock();
|
||||
$access = new Access($con, $lw, $um);
|
||||
|
||||
if(!function_exists('\bcadd')) {
|
||||
$this->markTestSkipped('bcmath not available');
|
||||
}
|
||||
|
||||
$sidIllegal = 'foobar';
|
||||
$sidExpected = '';
|
||||
|
||||
$this->assertSame($sidExpected, $access->convertSID2Str($sidIllegal));
|
||||
}
|
||||
|
||||
public function testConvertSID2StrNoBCMath() {
|
||||
if(function_exists('\bcadd')) {
|
||||
$removed = false;
|
||||
if(function_exists('runkit_function_remove')) {
|
||||
$removed = !runkit_function_remove('\bcadd');
|
||||
}
|
||||
if(!$removed) {
|
||||
$this->markTestSkipped('bcadd could not be removed for ' .
|
||||
'testing without bcmath');
|
||||
}
|
||||
}
|
||||
|
||||
list($lw, $con, $um) = $this->getConnecterAndLdapMock();
|
||||
$access = new Access($con, $lw, $um);
|
||||
|
||||
$sidBinary = file_get_contents(__DIR__ . '/data/sid.dat');
|
||||
$sidExpected = '';
|
||||
|
||||
$this->assertSame($sidExpected, $access->convertSID2Str($sidBinary));
|
||||
}
|
||||
|
||||
public function testGetDomainDNFromDNSuccess() {
|
||||
list($lw, $con, $um) = $this->getConnecterAndLdapMock();
|
||||
$access = new Access($con, $lw, $um);
|
||||
|
|
Loading…
Reference in a new issue