public function saveAction() { $id = $this->getRequest()->getParam('id'); if (!$id) { $this->getResponse()->setStatus(0)->setBody(__('user does not exist'))->toJson(); } $user_rs = Admin_UsersModel::get(array('id' => $id)); if (!$user_rs) { $this->getResponse()->setStatus(0)->setBody(__('user does not exist'))->toJson(); } if ($id != s()->user->id && $user_rs->is_developer) { $this->getResponse()->setStatus(0)->setBody('how about no?')->toJson(); } $update_data = array('user' => strip_tags(strtolower($this->getRequest()->getPost('user'))), 'email' => strip_tags(strtolower($this->getRequest()->getPost('email'))), 'role_id' => $this->getRequest()->getPost('role'), 'company' => $this->getRequest()->getPost('company')); if ($update_data['user'] == '' || $update_data['email'] == '' || $update_data['role_id'] == '') { $this->getResponse()->setStatus(0)->setBody(__('invalid data submited. Username, Email and Role are mandatory'))->toJson(); } // check for duplicates on user/ email $check_username = Admin_UsersModel::get(array('user' => $update_data['user'])); if ($check_username && $check_username['id'] != $id) { $this->getResponse()->setStatus(0)->setBody(__('user with the same name exist'))->toJson(); } $check_email = Admin_UsersModel::get(array('email' => $update_data['email'])); if ($check_email && $check_email['id'] != $id) { $this->getResponse()->setStatus(0)->setBody(__('user with the same email exist'))->toJson(); } Admin_UsersModel::set($update_data, array('id' => $id)); // Refresh the user's session if ($id == s()->user->id) { Cms_UserData::refresh(array(Cms_UserData::ATTR_ALL)); } else { Cms_UserData::injectRefresh($id, array(Cms_UserData::ATTR_ALL)); } $this->getResponse()->setStatus(1)->setBody(__('user updated'))->toJson(); }
public static function login($user_id, $persistent = false) { s()->flush(); if ($persistent) { s()->setPersistent(); } // Load user data s()->user->id = $user_id; // Set user session Admin_UsersModel::set(array('session_id' => s()->getId()), array('id' => s()->user->id)); Admin_LogsModel::insert(array('user_id' => $user_id, 'ip' => Core_Request::getInstance()->getServer('REMOTE_ADDR')), Admin_LogsModel::USER_LOGIN); Cms_UserData::refresh(array(Cms_UserData::ATTR_ALL)); return s()->user->id ? true : false; }