예제 #1
0
 public function beforeSave()
 {
     /* copy profile */
     $profile = $this->object->getOne('Profile');
     if ($profile) {
         /** @var modUserProfile $newProfile */
         $newProfile = $this->modx->newObject('modUserProfile');
         $newProfile->fromArray($profile->toArray());
         $this->newObject->addOne($newProfile);
     }
     /* copy user group memberships */
     $memberships = $this->object->getMany('UserGroupMembers');
     $newMemberships = array();
     /** @var modUserGroupMember $membership */
     foreach ($memberships as $membership) {
         /** @var modUserGroupMember $newMembership */
         $newMembership = $this->modx->newObject('modUserGroupMember');
         $newMembership->fromArray($membership->toArray());
         $newMemberships[] = $newMembership;
     }
     $this->newObject->addMany($newMemberships);
     /* copy settings */
     $settings = $this->object->getMany('UserSettings');
     $newSettings = array();
     /** @var modUserSetting $setting */
     foreach ($settings as $setting) {
         /** @var modUserSetting $newSetting */
         $newSetting = $this->modx->newObject('modUserSetting');
         $newSetting->fromArray($setting->toArray());
         $newSetting->set('key', $setting->get('key'));
         $newSettings[] = $newSetting;
     }
     $this->newObject->addMany($newSettings);
     return parent::beforeSave();
 }
예제 #2
0
 /**
  * Validate the passed properties for the new context
  * @return boolean
  */
 public function beforeSave()
 {
     $newKey = $this->getProperty('newkey');
     /* make sure the new key is a valid PHP identifier with no underscore characters */
     if (empty($newKey) || !preg_match('/^[a-zA-Z\\x7f-\\xff][a-zA-Z0-9\\x2d-\\x2f\\x7f-\\xff]*$/', $newKey)) {
         $this->addFieldError('newkey', $this->modx->lexicon('context_err_ns_key'));
     }
     return parent::beforeSave();
 }
예제 #3
0
 public function beforeSave()
 {
     $copyEls = (bool) $this->getProperty('copyels', false);
     if ($copyEls) {
         $els = $this->object->getMany('Elements');
         $pses = array();
         foreach ($els as $el) {
             $pse = $this->modx->newObject('modElementPropertySet');
             $pse->set('element_class', $el->get('element_class'));
             $pse->set('element', $el->get('element'));
             $pses[] = $pse;
         }
         $this->newObject->addMany($pses);
     }
     return parent::beforeSave();
 }
 public function beforeSave()
 {
     $this->newObject->set('status', sTaskRun::STATUS_SCHEDULED);
     $this->newObject->set('executedon', null);
     $this->newObject->set('errors', null);
     $this->newObject->set('message', null);
     // get timing or create one
     $timing = $this->getProperty('timing_new', 0);
     if (empty($timing)) {
         $timingNr = $this->getProperty('timing_number', 1);
         $timingInterval = $this->getProperty('timing_interval', 'minute') . ($timingNr != 1 ? 's' : '');
         // to make it: minutes, hours, months.. etc.
         $timing = strtotime('+' . $timingNr . ' ' . $timingInterval);
     }
     if (empty($timing)) {
         $this->addFieldError('timing', $this->modx->lexicon('scheduler.error.no-timing'));
     }
     $this->newObject->setTiming($timing, false);
     return parent::beforeSave();
 }
예제 #5
0
 public function beforeSave()
 {
     /* copy profile */
     $profile = $this->object->getOne('Profile');
     if ($profile) {
         // Reset some modUserProfile fields
         $profileData = array_merge($profile->toArray(), array('logincount' => '', 'lastlogin' => '', 'thislogin' => '', 'failedlogincount' => '', 'sessionid' => ''));
         unset($profileData['internalKey']);
         /** @var modUserProfile $newProfile */
         $newProfile = $this->modx->newObject('modUserProfile');
         $newProfile->fromArray($profileData);
         $this->newObject->addOne($newProfile);
     }
     /* copy user group memberships */
     $memberships = $this->object->getMany('UserGroupMembers');
     $newMemberships = array();
     /** @var modUserGroupMember $membership */
     foreach ($memberships as $membership) {
         /** @var modUserGroupMember $newMembership */
         $newMembership = $this->modx->newObject('modUserGroupMember');
         $newMembership->fromArray($membership->toArray());
         $newMemberships[] = $newMembership;
     }
     $this->newObject->addMany($newMemberships);
     /* copy settings */
     $settings = $this->object->getMany('UserSettings');
     $newSettings = array();
     /** @var modUserSetting $setting */
     foreach ($settings as $setting) {
         /** @var modUserSetting $newSetting */
         $newSetting = $this->modx->newObject('modUserSetting');
         $newSetting->fromArray($setting->toArray());
         $newSetting->set('key', $setting->get('key'));
         $newSettings[] = $newSetting;
     }
     $this->newObject->addMany($newSettings);
     // Unset some modUser fields
     $this->object->set('session_stale', null);
     return parent::beforeSave();
 }
예제 #6
0
 public function beforeSave()
 {
     $this->newObject->set('active', false);
     return parent::beforeSave();
 }
예제 #7
0
 public function beforeSave()
 {
     $this->newObject->set('constraint_class', 'modResource');
     $this->newObject->set('active', false);
     return parent::beforeSave();
 }
예제 #8
0
 public function beforeSave()
 {
     $this->duplicatePlacements();
     return parent::beforeSave();
 }