Beispiel #1
0
 public function generateUsers()
 {
     $user_1 = new PFUser();
     $user_1->setUserName(self::TEST_USER_1_NAME);
     $user_1->setRealName(self::TEST_USER_1_REALNAME);
     $user_1->setLdapId(self::TEST_USER_1_LDAPID);
     $user_1->setPassword(self::TEST_USER_1_PASS);
     $user_1->setStatus(self::TEST_USER_1_STATUS);
     $user_1->setEmail(self::TEST_USER_1_EMAIL);
     $user_1->setLanguage($GLOBALS['Language']);
     $this->user_manager->createAccount($user_1);
     $user_1->setLabFeatures(true);
     return $this;
 }
 /**
  * Do all the synchronization between an ldap result and a Tuleap user.
  *
  * This method returns if it modified the user or not. This is usefull during
  * batch process in order to limit computing.
  *
  * @param PFUser       $user User
  * @param LDAPResult $lr   Ldap result
  *
  * @return Boolean True if the method modified the user object
  */
 public function sync(PFUser $user, LDAPResult $lr)
 {
     $modified = false;
     $ldapEmail = $lr->getEmail();
     $realname = ucwords(preg_replace('/^(\\w+).(\\w+)@.*/', '\\1 \\2', $ldapEmail));
     if ($realname !== null && $user->getRealName() != substr($realname, 0, 32)) {
         $user->setRealName($realname);
         $modified = true;
     }
     if ($ldapEmail !== null && $user->getEmail() != $ldapEmail) {
         $user->setEmail($ldapEmail);
         $modified = true;
     }
     return $modified;
 }
 public function process(Tracker_IDisplayTrackerLayout $layout, Codendi_Request $request, PFUser $current_user)
 {
     //TODO : check permissions on this action?
     $comment_format = $this->artifact->validateCommentFormat($request, 'comment_formatnew');
     $this->artifact->setUseArtifactPermissions($request->get('use_artifact_permissions') ? 1 : 0);
     $fields_data = $request->get('artifact');
     $fields_data['request_method_called'] = 'artifact-update';
     $this->artifact->getTracker()->augmentDataFromRequest($fields_data);
     unset($fields_data['request_method_called']);
     try {
         if ($current_user->isAnonymous()) {
             $current_user->setEmail($request->get('email'));
         }
         $this->artifact->createNewChangeset($fields_data, $request->get('artifact_followup_comment'), $current_user, true, $comment_format);
         $art_link = $this->artifact->fetchDirectLinkToArtifact();
         $GLOBALS['Response']->addFeedback('info', $GLOBALS['Language']->getText('plugin_tracker_index', 'update_success', array($art_link)), CODENDI_PURIFIER_LIGHT);
         $redirect = $this->getRedirectUrlAfterArtifactUpdate($request);
         $this->artifact->summonArtifactRedirectors($request, $redirect);
         if ($request->isAjax()) {
             $this->sendAjaxCardsUpdateInfo($current_user, $this->artifact, $this->form_element_factory);
         } elseif ($request->existAndNonEmpty('from_overlay')) {
             echo '<script>window.parent.tuleap.cardwall.cardsEditInPlace.validateEdition(' . $this->artifact->getId() . ')</script>';
             return;
         } else {
             $GLOBALS['Response']->redirect($redirect->toUrl());
         }
     } catch (Tracker_NoChangeException $e) {
         if ($request->isAjax()) {
             $this->sendAjaxCardsUpdateInfo($current_user, $this->artifact, $this->form_element_factory);
         } else {
             $GLOBALS['Response']->addFeedback('info', $e->getMessage(), CODENDI_PURIFIER_LIGHT);
             $render = new Tracker_Artifact_ReadOnlyRenderer($this->event_manager, $this->artifact, $this->form_element_factory, $layout);
             $render->display($request, $current_user);
         }
     } catch (Tracker_Exception $e) {
         if ($request->isAjax()) {
             $this->sendAjaxCardsUpdateInfo($current_user, $this->artifact, $this->form_element_factory);
         } else {
             $GLOBALS['Response']->addFeedback('error', $e->getMessage());
             $render = new Tracker_Artifact_ReadOnlyRenderer($this->event_manager, $this->artifact, $this->form_element_factory, $layout);
             $render->display($request, $current_user);
         }
     }
 }
Beispiel #4
0
 public function generateUsers()
 {
     echo "Create users\n";
     $user = new PFUser();
     $user->setUserName(self::USER_RICHARD_NAME);
     $user->setPassword(self::USER_RICHARD_PASS);
     $user->setEmail(self::USER_RICHARD_NAME . '@localhost.localdomain');
     $user->setRealName("Richard Cover");
     $user->setLanguage($GLOBALS['Language']);
     $this->richard = UserManager::instance()->createAccount($user);
     $user = new PFUser();
     $user->setUserName(self::USER_ALICE_NAME);
     $user->setPassword(self::USER_ALICE_PASS);
     $user->setEmail(self::USER_ALICE_NAME . '@localhost.localdomain');
     $user->setRealName("Alice Tyrell");
     $user->setLanguage($GLOBALS['Language']);
     $this->alice = UserManager::instance()->createAccount($user);
     return $this;
 }
Beispiel #5
0
 public function generateUsers()
 {
     $user_1 = new PFUser();
     $user_1->setUserName(self::TEST_USER_1_NAME);
     $user_1->setRealName(self::TEST_USER_1_REALNAME);
     $user_1->setLdapId(self::TEST_USER_1_LDAPID);
     $user_1->setPassword(self::TEST_USER_1_PASS);
     $user_1->setStatus(self::TEST_USER_1_STATUS);
     $user_1->setEmail(self::TEST_USER_1_EMAIL);
     $user_1->setLanguage($GLOBALS['Language']);
     $this->user_manager->createAccount($user_1);
     $user_1->setLabFeatures(true);
     $user_2 = new PFUser();
     $user_2->setUserName(self::TEST_USER_2_NAME);
     $user_2->setPassword(self::TEST_USER_2_PASS);
     $user_2->setStatus(self::TEST_USER_2_STATUS);
     $user_2->setEmail(self::TEST_USER_2_EMAIL);
     $user_2->setLanguage($GLOBALS['Language']);
     $user_2->setAuthorizedKeys('ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDHk9 toto@marche');
     $this->user_manager->createAccount($user_2);
     $user_3 = new PFUser();
     $user_3->setUserName(self::TEST_USER_3_NAME);
     $user_3->setPassword(self::TEST_USER_3_PASS);
     $user_3->setStatus(self::TEST_USER_3_STATUS);
     $user_3->setEmail(self::TEST_USER_3_EMAIL);
     $user_3->setLanguage($GLOBALS['Language']);
     $this->user_manager->createAccount($user_3);
     $user_4 = new PFUser();
     $user_4->setUserName(self::TEST_USER_4_NAME);
     $user_4->setPassword(self::TEST_USER_4_PASS);
     $user_4->setStatus(self::TEST_USER_4_STATUS);
     $user_4->setEmail(self::TEST_USER_1_EMAIL);
     $user_4->setLanguage($GLOBALS['Language']);
     $this->user_manager->createAccount($user_4);
     return $this;
 }
 /**
  * Return users corresponding to email addresses mapped according to their
  * preferences.
  * 
  * @deprecated
  * 
  * @param Array $addresses A set of addresses
  * 
  * @return Array of Array of User
  */
 public function getMailPreferencesByEmail($addresses)
 {
     $default = Codendi_Mail_Interface::FORMAT_HTML;
     $res = array('html' => array(), 'text' => array());
     $um = $this->getUserManager();
     foreach ($addresses as $address) {
         $users = $um->getAllUsersByEmail($address);
         $pref = $default;
         if (count($users) > 0) {
             foreach ($users as $user) {
                 $pref_user = $this->getMailPreferencesByUser($user);
                 $user_status = $user->getStatus();
                 if ($pref_user != $default && ($user_status == 'A' || $user_status == 'R')) {
                     $pref = $pref_user;
                     break;
                 }
             }
         } else {
             $user = new PFUser(array('user_id' => 0, 'language_id' => $this->getConfig('sys_lang')));
             $user->setEmail($address);
         }
         $res[$pref][] = $user;
     }
     return $res;
 }
 /**
  * Add an artefact in the tracker
  * 
  * @param Tracker $tracker           The tracker this artifact belongs to
  * @param array   $fields_data       The data of the artifact to create
  * @param PFUser    $user              The user that want to create the artifact
  * @param string  $email             The email if the user is anonymous (null if anonymous)
  * @param boolean $send_notification true if a notification must be sent, false otherwise
  * 
  * @return Tracker_Artifact or false if an error occured
  */
 public function createArtifact(Tracker $tracker, $fields_data, PFUser $user, $email, $send_notification = true)
 {
     $formelement_factory = Tracker_FormElementFactory::instance();
     $fields_validator = new Tracker_Artifact_Changeset_InitialChangesetFieldsValidator($formelement_factory);
     $changeset_creator = new Tracker_Artifact_Changeset_InitialChangesetCreator($fields_validator, $formelement_factory, new Tracker_Artifact_ChangesetDao(), $this, EventManager::instance());
     $creator = new Tracker_ArtifactCreator($this, $fields_validator, $changeset_creator);
     if ($user->isAnonymous()) {
         $user->setEmail($email);
     }
     $submitted_on = $_SERVER['REQUEST_TIME'];
     return $creator->create($tracker, $fields_data, $user, $submitted_on, $send_notification);
 }
 /**
  * Do all the synchronization between an ldap result and a Codendi user.
  *
  * This method returns if it modified the user or not. This is usefull during
  * batch process in order to limit computing.
  *
  * @param PFUser       $user Codendi user
  * @param LDAPResult $lr   Ldap result
  *
  * @return Boolean True if the method modified the user object
  */
 public function sync(PFUser $user, LDAPResult $lr)
 {
     $modified = false;
     if ($lr->getCommonName() !== null && $user->getRealName() != substr($lr->getCommonName(), 0, 32)) {
         $user->setRealName($this->getCommonName($lr));
         $modified = true;
     }
     if ($lr->getEmail() !== null && $user->getEmail() != $lr->getEmail()) {
         $user->setEmail($lr->getEmail());
         $modified = true;
     }
     return $modified;
 }
 /**
  * Create user account based on LDAP info.
  *
  * @param  String $eduid
  * @param  String $uid
  * @param  String $cn
  * @param  String $email
  * @return PFUser
  */
 function createAccount($eduid, $uid, $cn, $email)
 {
     if (trim($uid) == '' || trim($eduid) == '') {
         return false;
     }
     $user = new PFUser();
     $user->setUserName($this->generateLogin($uid));
     $user->setLdapId($eduid);
     $user->setRealName($cn);
     $user->setEmail($email);
     // Generates a pseudo-random password. Its not full secure but its
     // better than nothing.
     $user->setPassword(md5((string) mt_rand(10000, 999999) . time()));
     // Default LDAP
     $user->setStatus($this->getLdap()->getLDAPParam('default_user_status'));
     $user->setRegisterPurpose('LDAP');
     $user->setUnixStatus('S');
     $user->setTimezone('GMT');
     $user->setLanguageID($GLOBALS['Language']->getText('conf', 'language_id'));
     $um = $this->getUserManager();
     $u = $um->createAccount($user);
     if ($u) {
         $u = $um->getUserById($user->getId());
         // Create an entry in the ldap user db
         $ldapUserDao = $this->getDao();
         $ldapUserDao->createLdapUser($u->getId(), 0, $uid);
         return $u;
     }
     return false;
 }
 public function getFullRESTValueForAnonymous(Tracker_Artifact_Changeset $changeset)
 {
     $user = new PFUser();
     $user->setEmail($changeset->getEmail());
     $user->setRealName($changeset->getEmail());
     $class_user_representation = '\\Tuleap\\User\\REST\\UserRepresentation';
     $user_representation = new $class_user_representation();
     $user_representation->build($user);
     return $user_representation;
 }
 public function getFullRESTValue(Tracker_FormElement_Field_List_Value $value)
 {
     $user_manager = UserManager::instance();
     $class_user_representation = '\\Tuleap\\User\\REST\\UserRepresentation';
     $user_representation = new $class_user_representation();
     $user = $user_manager->getUserByUserName($value->getLabel());
     if (!$user) {
         $user = new PFUser();
         $user->setEmail($value->getLabel());
     }
     $user_representation->build($user);
     return $user_representation;
 }
 /**
  * Create user account based on LDAP info.
  *
  * @param  String $eduid
  * @param  String $uid
  * @param  String $cn
  * @param  String $email
  * @return PFUser
  */
 function createAccount($eduid, $uid, $cn, $email)
 {
     if (trim($uid) == '' || trim($eduid) == '') {
         return false;
     }
     $user = new PFUser();
     $user->setUserName($this->generateLogin($uid));
     $user->setLdapId($eduid);
     $user->setRealName($cn);
     $user->setEmail($email);
     $mail_confirm_code_generator = new MailConfirmationCodeGenerator($this->getUserManager(), new RandomNumberGenerator());
     $mail_confirm_code = $mail_confirm_code_generator->getConfirmationCode();
     $user->setConfirmHash($mail_confirm_code);
     // Default LDAP
     $user->setStatus($this->getLdap()->getLDAPParam('default_user_status'));
     $user->setRegisterPurpose('LDAP');
     $user->setUnixStatus('S');
     $user->setTimezone('GMT');
     $user->setLanguageID($GLOBALS['Language']->getText('conf', 'language_id'));
     $um = $this->getUserManager();
     $u = $um->createAccount($user);
     if ($u) {
         $u = $um->getUserById($user->getId());
         // Create an entry in the ldap user db
         $ldapUserDao = $this->getDao();
         $ldapUserDao->createLdapUser($u->getId(), 0, $uid);
         return $u;
     }
     return false;
 }
Beispiel #13
0
function account_create($loginname = '', $pw = '', $ldap_id = '', $realname = '', $register_purpose = '', $email = '', $status = 'P', $confirm_hash = '', $mail_site = 0, $mail_va = 0, $timezone = 'GMT', $lang_id = 'en_US', $unix_status = 'N', $expiry_date = 0)
{
    $um = UserManager::instance();
    $user = new PFUser();
    $user->setUserName($loginname);
    $user->setRealName($realname);
    $user->setPassword($pw);
    $user->setLdapId($ldap_id);
    $user->setRegisterPurpose($register_purpose);
    $user->setEmail($email);
    $user->setStatus($status);
    $user->setConfirmHash($confirm_hash);
    $user->setMailSiteUpdates($mail_site);
    $user->setMailVA($mail_va);
    $user->setTimezone($timezone);
    $user->setLanguageID($lang_id);
    $user->setUnixStatus($unix_status);
    $user->setExpiryDate($expiry_date);
    $u = $um->createAccount($user);
    if ($u) {
        return $u->getId();
    } else {
        return $u;
    }
}