コード例 #1
0
ファイル: rsmembership.php プロジェクト: JozefAB/qk
 public static function updateGid($user_id, $gid, $unblock = false, $action = 'add')
 {
     try {
         jimport('joomla.user.helper');
         $user_id = (int) $user_id;
         if (!is_array($gid)) {
             $gid = explode(',', $gid);
         }
         JArrayHelper::toInteger($gid);
         // old version
         if (RSMembershipHelper::getConfig('replace_gid')) {
             JUserHelper::setUserGroups($user_id, $gid);
         } else {
             foreach ($gid as $group) {
                 if ($action == 'add') {
                     self::syslog('gid', "Adding user({$user_id}) to group({$group})");
                     JUserHelper::addUserToGroup($user_id, $group);
                 } elseif ($action == 'remove') {
                     self::syslog('gid', "Removing user({$user_id}) from group({$group})");
                     JUserHelper::removeUserFromGroup($user_id, $group);
                 }
             }
         }
         if ($unblock) {
             RSMembership::enableUser($user_id);
         }
     } catch (Exception $e) {
         self::syslog('gid', "Error on changing group for user({$user_id}). Message: " . $e->getMessage());
     }
 }
コード例 #2
0
ファイル: membership_subscriber.php プロジェクト: JozefAB/qk
 public function save($data)
 {
     $membership_fields = JRequest::getVar('rsm_membership_fields', array(), 'post', 'array');
     $last_transaction_id = JRequest::getVar('last_transaction_id', '', 'post');
     if (count($membership_fields)) {
         $transaction = JTable::getInstance('Transaction', 'RSMembershipTable');
         $transaction->load($last_transaction_id);
         $user_data = $transaction->user_data ? (object) unserialize($transaction->user_data) : (object) array();
         $user_data->membership_fields = $membership_fields;
         $transaction->user_data = serialize($user_data);
         if ($transaction->check()) {
             $transaction->store();
         }
     }
     if (!isset($data['extras'])) {
         $data['extras'] = '';
     } else {
         $data['extras'] = implode(',', $data['extras']);
     }
     // Updating ? Make sure we check the status
     if ($data['id']) {
         $current = $this->getTable();
         $current->load($data['id']);
         if ($current->status == MEMBERSHIP_STATUS_ACTIVE && $data['status'] != MEMBERSHIP_STATUS_ACTIVE) {
             $data['notified'] = 0;
         }
     }
     // Handle dates
     $offset = JFactory::getApplication()->getCfg('offset');
     $data['membership_start'] = JFactory::getDate($data['membership_start'], $offset)->toSql();
     if (isset($data['unlimited'])) {
         $data['membership_end'] = JFactory::getDbo()->getNullDate();
         unset($data['unlimited']);
     } else {
         $data['membership_end'] = JFactory::getDate($data['membership_end'], $offset)->toSql();
     }
     $result = parent::save($data);
     // Save was successful
     if ($result) {
         $membership = JTable::getInstance('Membership', 'RSMembershipTable');
         $membership->load($data['membership_id']);
         if ($data['status'] == MEMBERSHIP_STATUS_ACTIVE) {
             if ($membership->gid_enable) {
                 RSMembership::updateGid($data['user_id'], $membership->gid_subscribe, true);
             }
             if ($membership->disable_expired_account) {
                 RSMembership::enableUser($data['user_id']);
             }
         } elseif ($data['status'] == MEMBERSHIP_STATUS_EXPIRED || $data['status'] == MEMBERSHIP_STATUS_CANCELLED) {
             if ($membership->gid_enable) {
                 RSMembership::updateGid($data['user_id'], $membership->gid_expire, false, 'remove');
             }
             if ($membership->disable_expired_account) {
                 RSMembership::disableUser($data['user_id']);
             }
         }
     }
     return $result;
 }
コード例 #3
0
 function updateGid($user_id, $gid, $unblock = false)
 {
     $db =& JFactory::getDBO();
     $user_id = (int) $user_id;
     if (RSMembershipHelper::isJ16()) {
         jimport('joomla.user.helper');
         if (!is_array($gid)) {
             $gid = explode(',', $gid);
         }
         JArrayHelper::toInteger($gid);
         JUserHelper::setUserGroups($user_id, $gid);
     } else {
         $gid = (int) $gid;
         // Update aro_id
         $db->setQuery("SELECT id FROM #__core_acl_aro WHERE `value`='" . $user_id . "' AND `section_value`='users'");
         $db->setQuery("UPDATE #__core_acl_groups_aro_map SET `group_id`='" . $gid . "' WHERE `aro_id`='" . $db->loadResult() . "'");
         $db->query();
         // Update gid
         $db->setQuery("SELECT `name` FROM #__core_acl_aro_groups WHERE `id`='" . $gid . "'");
         $db->setQuery("UPDATE #__users SET `gid`='" . $gid . "', `usertype`='" . $db->getEscaped($db->loadResult()) . "' WHERE `id`='" . $user_id . "'");
         $db->query();
     }
     if ($unblock) {
         RSMembership::enableUser($user_id);
     }
 }