/** * Remove user credits depending of order * * @access public * @param object $order = Order object * @param array of objects $products = Products from order * @return void */ public static function remove_credits($order = false, $products = false) { if (!is_numeric($order->user_id)) { return false; } // Get user to edit if (!\Sentry::user_exists((int) $order->user_id)) { return false; } $user = new \Sentry_User((int) $order->user_id); // Remove user credits $seek = $user->get('metadata.seek_credits') - ($order->seek > 0 ? 1 : 0); $seek >= 0 or $seek = 0; $careerone = $user->get('metadata.careerone_credits') - ($order->careerone > 0 ? 1 : 0); $careerone >= 0 or $careerone = 0; $update = array('metadata' => array('seek_credits' => $seek, 'careerone_credits' => $careerone)); // Update user credits if ($user->update($update)) { return true; } return false; }
/** * Add user credits depending of order * * @access public * @param object $order = Order object * @param array of objects $products = Products from order * @return void */ public function add_credits($order = false, $products = false) { if (!is_numeric($order->user_id)) { return false; } // Get user to edit if (!\Sentry::user_exists((int) $order->user_id)) { return false; } $user = new \Sentry_User((int) $order->user_id); // Add user credits $update = array('metadata' => array('seek_credits' => $user->get('metadata.seek_credits') + $order->seek, 'careerone_credits' => $user->get('metadata.careerone_credits') + $order->careerone)); // Update user credits if ($user->update($update)) { return true; } return false; }
/** * Update user profile * * @param int * @access public * @return void */ public function action_update($id = false) { if (!is_numeric($id)) { \Response::redirect('admin/settings/user/list'); } // Cast user id param to int $id = (int) $id; // Redirect if user don't exists if (!\Sentry::user_exists($id)) { \Response::redirect('admin/settings/user/list'); } $user = \Sentry::user($id); $user_group = new \Sentry_User((int) $id); $user_group1 = $user_group->groups(); $user_group2 = current($user_group1); $user_data = array('id' => $user->get('id'), 'first_name' => $user->get('metadata.first_name'), 'last_name' => $user->get('metadata.last_name'), 'email' => $user->get('email'), 'username' => $user->get('username'), 'user_group' => $user_group2['name']); if (\Input::post()) { // Validate input parameters $val = \Validation::forge('admin_details_validation'); $val->add('first_name', 'First Name')->add_rule('required')->add_rule('min_length', 2)->add_rule('max_length', 255); $val->add('last_name', 'Last Name')->add_rule('required')->add_rule('min_length', 2)->add_rule('max_length', 255); $val->add('email', 'Email')->add_rule('required')->add_rule('valid_email'); $val->add('password', 'Password')->add_rule('min_length', 8); $val->add('confirm_password', 'Confirm Password')->add_rule('required_with', 'password')->add_rule('match_field', 'password'); $val->add('username', 'Username')->add_rule('required')->add_rule('unique', array('users', 'username', $id)); if ($val->run()) { // Get Input parameters $post_data = \Input::post(); try { $fields = array('username' => $post_data['username'], 'email' => $post_data['email'], 'password' => $post_data['password'], 'user_group' => $post_data['user_group'], 'metadata' => array('first_name' => $post_data['first_name'], 'last_name' => $post_data['last_name'])); if (empty($post_data['password'])) { unset($fields['password']); } $item = new \Sentry_User((int) $id); $update = $item->update($fields); // $item->remove_from_group((int)$fields['user_group']); // $item->add_to_group((int)$fields['user_group']); if ($update) { $user_groups = $item->groups(); if (!empty($user_groups)) { // Remove user from all other groups... foreach ($user_groups as $value) { $item->remove_from_group((int) $value['id']); } } $item = new \Sentry_User((int) $id); // ...and add it to selected one $item->add_to_group((int) $fields['user_group']); \Messages::success('User Details Successfully updated.'); \Response::redirect(\Uri::admin('current')); } else { \Messages::error('There was an error while trying to update User details.'); } } catch (Sentry\SentryException $e) { \Messages::error($e->get_message()); } } else { if ($val->error() != array()) { // Show validation errors \Messages::error('<strong>There was an error while trying to update User details</strong>'); foreach ($val->error() as $e) { \Messages::error($e->get_message()); } } } } \View::set_global('title', 'Update User Details'); \Theme::instance()->set_partial('content', $this->view_dir . 'update')->set('user_data', $user_data); }