Ejemplo n.º 1
0
 /**
  * checks whether a user is actually mapped
  * @param string $ocName the username as used in ownCloud
  * @throws \Exception
  * @return true
  */
 protected function confirmUserIsMapped($ocName)
 {
     $dn = $this->mapping->getDNByName($ocName);
     if ($dn === false) {
         throw new \Exception('The given user is not a recognized LDAP user.');
     }
     return true;
 }
 /**
  * prepares the LDAP environment and sets up a test configuration for
  * the LDAP backend.
  */
 public function init()
 {
     require __DIR__ . '/../setup-scripts/createExplicitUsers.php';
     parent::init();
     $this->mapping = new UserMapping(\OC::$server->getDatabaseConnection());
     $this->mapping->clear();
     $this->access->setUserMapper($this->mapping);
     $this->backend = new \OCA\user_ldap\USER_LDAP($this->access, \OC::$server->getConfig());
 }
Ejemplo n.º 3
0
 /**
  * A method that does the common steps of test cases 1 and 2. The evaluation
  * is not happening here.
  *
  * @param string $dn
  * @param string $username
  * @param string $image
  */
 private function execFetchTest($dn, $username, $image)
 {
     $this->setJpegPhotoAttribute($dn, $image);
     // assigns our self-picked oc username to the dn
     $this->mapping->map($dn, $username, 'fakeUUID-' . $username);
     // initialize home folder and make sure that the user will update
     // also remove an possibly existing avatar
     \OC_Util::tearDownFS();
     \OC_Util::setupFS($username);
     \OC::$server->getUserFolder($username);
     \OC::$server->getConfig()->deleteUserValue($username, 'user_ldap', User::USER_PREFKEY_LASTREFRESH);
     if (\OC::$server->getAvatarManager()->getAvatar($username)->exists()) {
         \OC::$server->getAvatarManager()->getAvatar($username)->remove();
     }
     // finally attempt to get the avatar set
     $user = $this->userManager->get($dn);
     $user->updateAvatar();
 }
Ejemplo n.º 4
0
 /**
  * reads the user details
  */
 protected function fetchDetails()
 {
     $properties = array('displayName' => 'user_ldap', 'uid' => 'user_ldap', 'homePath' => 'user_ldap', 'email' => 'settings', 'lastLogin' => 'login');
     foreach ($properties as $property => $app) {
         $this->{$property} = $this->config->getUserValue($this->ocName, $app, $property, '');
     }
     $dn = $this->mapping->getDNByName($this->ocName);
     $this->dn = $dn !== false ? $dn : '';
     $this->determineShares();
 }
Ejemplo n.º 5
0
 /**
  * makes the background job do its work
  * @param array $argument
  */
 public function run($argument)
 {
     $this->setArguments($argument);
     if (!$this->isCleanUpAllowed()) {
         return;
     }
     $users = $this->mapping->getList($this->getOffset(), $this->limit);
     if (!is_array($users)) {
         //something wrong? Let's start from the beginning next time and
         //abort
         $this->setOffset(true);
         return;
     }
     $resetOffset = $this->isOffsetResetNecessary(count($users));
     $this->checkUsers($users);
     $this->setOffset($resetOffset);
 }
 /**
  * adds a map entry for the user, so we know the username
  *
  * @param $dn
  * @param $username
  */
 private function prepareUser($dn, $username)
 {
     // assigns our self-picked oc username to the dn
     $this->mapping->map($dn, $username, 'fakeUUID-' . $username);
 }