Ejemplo n.º 1
0
 protected function getUserInfo($id)
 {
     $data = \Mod\User::i()->getUserInfo($id);
     if (empty($data)) {
         $_SESSION['userMsg'] = array('type' => 'danger', 'msg' => 'Cannot find user!');
         header('Location: /users');
         exit;
     }
     $user = array();
     foreach ($data as $k => $v) {
         $user[str_replace('user_', '', $k)] = $v;
     }
     return $user;
 }
Ejemplo n.º 2
0
 public function removeServer($id)
 {
     $server = control()->database()->search('server')->filterByServerId($id)->getRow();
     if (!$server) {
         return false;
     }
     //get users
     $users = control()->database()->search('dev')->addInnerJoinOn('user', 'user_id = dev_user')->filterByDevServer($id)->getRows();
     foreach ($users as $v) {
         \Mod\User::i()->setUserId($v['user_id'])->removeUser($server['server_id']);
     }
     control()->database()->deleteRows('dev', array(array('dev_server=%s', $id)));
     control()->database()->deleteRows('server', array(array('server_id=%s', $id)));
     return true;
 }
Ejemplo n.º 3
0
 protected function saveServer($data, $id)
 {
     if ($id != $data['id']) {
         $_SESSION['serverMsg'] = array('type' => 'danger', 'msg' => 'Something went wrong!');
         header('Location: /server');
         exit;
     }
     $fields = array('server_root' => $data['root'], 'server_name' => $data['name']);
     if (trim($data['pass']) != '') {
         $fields['server_pass'] = \Mod\User::i()->encode($data['pass']);
     }
     control()->database()->updateRows('server', $fields, array(array('server_id=%s', $id)));
     $_SESSION['serverMsg'] = array('type' => 'success', 'msg' => 'Server updated successfully');
     header('Location: /servers');
     exit;
 }
Ejemplo n.º 4
0
 protected function verify($data, $userId)
 {
     if (!isset($data['password']) || !trim($data['password'])) {
         $this->setVerifyMsg('Password invalid!', 'danger');
     }
     if (!isset($data['password_repeat']) || !trim($data['password_repeat'])) {
         $this->setVerifyMsg('Password did not match!', 'danger');
     }
     if ($data['password'] != $data['password_repeat']) {
         $this->setVerifyMsg('Password did not match!', 'danger');
     }
     $pass = \Mod\User::i()->encode($data['password']);
     $fields = array('user_pass' => $pass, 'user_active' => 1);
     $query = array(array('user_id=%s', $userId));
     control()->database()->updateRows('user', $fields, $query);
     $_SESSION['loginError'] = array('type' => 'success', 'msg' => 'Your account has been activated. You can now login using your username and password');
     header('Location: /login');
     exit;
 }
Ejemplo n.º 5
0
 protected function login($data)
 {
     $error = array();
     if (!isset($data['email']) || !trim($data['email'])) {
         $this->loginError(array('type' => 'danger', 'msg' => 'Email Address cannot be empty!'));
     }
     if (!isset($data['password']) || !trim($data['password'])) {
         $this->loginError(array('type' => 'danger', 'msg' => 'Password is invalid!'));
     }
     $pass = \Mod\User::i()->encode($data['password']);
     $email = control()->database()->bind($data['email']);
     $account = control()->database()->search('user')->filterByUserPass($pass)->filterByUserActive(1)->addFilter('(user_email = ' . $email . ' OR user_name = ' . $email . ')')->getRow();
     if (empty($account)) {
         $this->loginError(array('type' => 'danger', 'msg' => 'Username and Password did not match'));
     }
     $_SESSION['user'] = $account;
     header('Location: /');
     exit;
 }
Ejemplo n.º 6
0
 public function getVariables()
 {
     if ($_SESSION['user']['user_role'] != 1 && isset($_SERVER['REDIRECT_URL'])) {
         header('Location: /');
         exit;
     }
     // get requested user Id
     $this->userId = control()->registry()->get('request', 'variables', 0);
     if (!$this->userId || !is_numeric($this->userId)) {
         // throw a message
         $this->addMessage('Unknown user. Please select users from the list below.', 'danger');
         // redirect
         control()->redirect('/users');
     }
     $detail = control()->database()->search('user')->setColumns('*')->addFilter('user_id=%s', $this->userId)->getRow();
     // remove server from user
     if (isset($_GET['remove']) && trim($_GET['remove'])) {
         $stat = \Mod\User::i()->setUserId($this->userId)->removeUser($_GET['remove']);
         if (!$stat) {
             $_SESSION['userMsg'] = array('type' => 'danger', 'msg' => 'Something went wrong. Please try again!');
             header('Location: /user/detail/' . $this->userId);
             exit;
         }
         $_SESSION['userMsg'] = array('type' => 'success', 'msg' => 'Server has been removed');
         header('Location: /user/detail/' . $this->userId);
         exit;
     }
     $server = control()->database()->search('dev')->innerJoinOn('server', 'server_id=dev_server')->filterByDevUser($this->userId);
     // Determine Current Page
     $page = isset($_GET['page']) ? $_GET['page'] : 1;
     // Get The Start In Query
     $start = isset($_GET['page']) && $_GET['page'] != 1 ? ($_GET['page'] - 1) * self::RANGE : 0;
     $totalServers = $server->getTotal();
     $server = $server->setStart($start)->setRange(self::RANGE)->getRows();
     $msg = array();
     if (isset($_SESSION['userMsg']) && !empty($_SESSION['userMsg'])) {
         $msg = $_SESSION['userMsg'];
         unset($_SESSION['userMsg']);
     }
     return array('userMsg' => $msg, 'detail' => $detail, 'server' => $server, 'page' => $page, 'range' => self::RANGE, 'totalServers' => $totalServers);
 }
Ejemplo n.º 7
0
 protected function addUser($user)
 {
     // check data
     // validate email email
     if (!isset($user['email']) && !trim($user['email'])) {
         $this->setMsg('Email is invalid!', 'danger');
     }
     if (!preg_match('/^[A-Za-z0-9\\._\\-]+\\@[A-Za-z0-9\\.\\-]+\\.[A-Za-z]{2,6}$/i', $user['email'])) {
         $this->setMsg('Email is invalid!', 'danger');
     }
     $account = control()->database()->search('user')->filterByUserEmail($user['email'])->getRow();
     if (!empty($account)) {
         $this->setMsg('Email is already taken', 'danger');
     }
     // validate username
     if (!isset($user['name']) || !trim($user['name'])) {
         $this->setMsg('Username is invalid!', 'danger');
     }
     $account = control()->database()->search('user')->filterByUserName($user['name'])->getRow();
     if (!empty($account)) {
         $this->setMsg('Username is already taken', 'danger');
     }
     if (!isset($user['first']) || !trim($user['first'])) {
         $this->setMsg('Please provide a firstname', 'danger');
     }
     if (!isset($user['last']) || !trim($user['last'])) {
         $this->setMsg('Please provide a lastname', 'danger');
     }
     if (!isset($user['role']) || $user['role'] < 0 && $data['role'] > 1) {
         $this->setMsg('Invalid role!', 'danger');
     }
     $user['status'] = '0';
     $fields = array('user_email' => $user['email'], 'user_name' => $user['name'], 'user_first' => $user['first'], 'user_last' => $user['last'], 'user_role' => $user['role'], 'user_pass' => '', 'user_active' => $user['status']);
     $token = \Mod\User::i()->encode($user['email']);
     $html = '<h3>User Access Control Account Verification</h3>' . '<p>Hi ' . ucwords($user['first']) . ',</p><br>' . '<p>Please verify your account for User Access Control</p>' . '<p>To verify your account, Visit the link below and create your password.</p>' . '<p><a href="http://' . $_SERVER['HTTP_HOST'] . '/verify?token=' . $token . '">http://' . $_SERVER['HTTP_HOST'] . '/verify?token=' . $token . '</a></p>' . '<br>' . '<p>Thanks</p>' . '<p>Openovate Team</p>';
     $account = control('system')->file(control()->path('config') . '/front/accounts.php')->getData();
     control('mail')->smtp($account['host'], $account['email'], $account['pass'], $account['port'], true)->addTo($user['email'])->setSubject('Account Verification')->setBody($html, true)->send();
     control()->database()->insertRow('user', $fields);
     $this->setMsg('User ' . $user['name'] . ' has been created', 'success');
 }
Ejemplo n.º 8
0
 protected function addServer($data)
 {
     if (!isset($data['name']) || !trim($data['name'])) {
         $this->setMsg('Server name is required!', 'danger');
     }
     if (!isset($data['root']) || !trim($data['root'])) {
         $this->setMsg('Server username is invalid!', 'danger');
     }
     if (!isset($data['pass']) || !trim($data['pass'])) {
         $this->setMsg('Password is invalid', 'danger');
     }
     if (!isset($data['ip']) || !trim($data['ip'])) {
         $this->setMsg('Server IP is invalid!', 'danger');
     }
     $server = control()->database()->search('server')->filterByServerIp($data['ip'])->getRow();
     if (!empty($server)) {
         $this->setMsg('Server IP already exist!', 'danger');
     }
     $fields = array('server_name' => $data['name'], 'server_root' => $data['root'], 'server_pass' => \Mod\User::i()->encode($data['pass']), 'server_ip' => $data['ip']);
     control()->database()->insertRow('server', $fields);
     $id = control()->database()->getLastInsertedId();
     \Mod\Server::i()->setId($id)->addServer();
     $this->setMsg('Server added', 'success');
 }
Ejemplo n.º 9
0
 protected function addToServer($data)
 {
     if (!isset($data['user']) || !trim($data['user'])) {
         die(json_encode(array('type' => 'danger', 'msg' => 'Something went wrong, reload the page and try again!!')));
     }
     if (!isset($data['server']) || empty($data['server'])) {
         die(json_encode(array('type' => 'danger', 'msg' => 'Please select a server!')));
     }
     if (!is_array($data['server'])) {
         die(json_encode(array('type' => 'danger', 'msg' => 'Something went wrong, reload the page and try again!')));
     }
     if (!isset($data['role']) || !trim($data['role'])) {
         die(json_encode(array('type' => 'danger', 'msg' => 'Please select a role for the user!')));
     }
     if ($data['role'] < 1 && $data['role'] > 2) {
         die(json_encode(array('type' => 'danger', 'msg' => 'Invalid role!')));
     }
     //get user information
     $user = \Mod\User::i()->getUserInfo($data['user']);
     if (empty($user)) {
         die(json_encode(array('type' => 'danger', 'msg' => 'User does not exist!')));
     }
     if ($user['user_active'] != 1) {
         die(json_encode(array('type' => 'danger', 'msg' => 'User is not active!')));
     }
     \Mod\User::i()->setUserId($data['user'])->addToServer($data['server'], $data['role']);
     $_SESSION['userMsg'] = array('type' => 'success', 'msg' => 'User added to server successfully!');
     die('Ok');
 }