public function login($email, $pwd, $mode = 'password')
 {
     if (empty($pwd)) {
         return false;
     }
     if ($mode == 'password') {
         $result = $this->where(array('email' => $email, 'password' => md5($pwd)))->find();
     } else {
         if ($mode == 'api') {
             $result = $this->where(array('api_vendor' => $email, 'api_id' => $pwd))->find();
         }
     }
     if (!$result || empty($result)) {
         return false;
     } elseif ($result['enabled'] == 0) {
         return false;
     } else {
         //login successfully
         //fetch other user information
         $user_model = new UsersModel();
         $user_data = $user_model->where(array('account_id' => $result['id']))->find();
         $user_data['local_maps'] = T('local_map')->with('admin_id', $user_data['id'])->select();
         $_SESSION['login_user'] = array_merge($user_data, $result);
         $_SESSION['login_user']['id'] = $user_data['id'];
         $this->where(array('id' => $result['id']))->data(array('last_login' => date('Y-m-d h:i:s')))->save();
         $this->query("update users set login_count=login_count+1 where id={$user_id}");
         return true;
     }
 }
 public function add_related_org_to_user($user_id, $related_org_name)
 {
     need_login();
     if (!user('is_admin')) {
         $user_id = user('id');
     }
     $user_model = new UsersModel();
     $related_ngo_model = M('Related_ngos');
     $result = $user_model->where(array('name' => $related_org_name))->find();
     if ($result) {
         $related_ngo_model->add(array('user_id' => $user_id, 'user_name' => $result['name'], 'related_user_id' => $result['id'], 'type' => $result['type']));
         echo json_encode(array('name' => $related_org_name, 'id' => $result['id'], 'image' => $result['image']));
         return;
     } else {
         $related_ngo_model->add(array('user_id' => $user_id, 'user_name' => $related_org_name));
         echo json_encode(array('name' => $related_org_name));
         return;
     }
 }
 public function set_creator_by_name($name)
 {
     $user_model = new UsersModel();
     $creator = $user_model->where(array('name' => $name))->find();
     if (!$creator) {
         return false;
     }
     $this->user_id = $creator['id'];
     return true;
 }