/**
   * Returns a user by it's email
   *
   * @return mixed
   */
  public static function getByEmail ( $email )
  {
    try {
      $c = new Criteria;
      $c->add( AuthUsersPeer::EMAIL, $email );

      $obj = AuthUsersPeer::doSelectOne( $c );
      if ( !$obj ) {
        throw new Exception( 'There is no user email ' .$email );
      }

      return array( 'id' => $obj->getId(),
                    'role' => $obj->getRoleid(),
                    'email' => $obj->getEmail() );
    } catch ( Exception $e ) {
      return $e->getMessage();
    }
  }
  /**
   * Returns password and role by username and password
   *
   * @param TlalokesRequest $request
   * @return array
   */
  public function getUserRole ( TlalokesRequest &$request )
  {
    try {
      // validate username and password existance
      if ( !$request->email ) {
        throw new Exception( 'Provide an email' );
      }
      if ( !$request->password ) {
        throw new Exception( 'Provide a password' );
      }
      $response = array();

      // get permissions by auth method
      switch ( strtolower( $this->auth ) ) {

        case 'sql' :

          // set Criteria object
          $c = new Criteria();
          $c->add( AuthUsersPeer::EMAIL, $request->email );
          // do select
          $result = AuthUsersPeer::doSelectOne( $c );
          unset( $c );
          if ( !$result ) {
            throw new Exception( 'There are no coincidences' );
          }
          // set response
          $response = array( 'password' => $result->getPassword(),
                             'role' => $result->getRole() );
          break;

        case 'array' :

          break;
      }

      return $response;
    } catch ( Exception $e ) {
      return $e->getMessage();
    }
  }
 /**
  * Deletes an existant user
  *
  * @return mixed
  */
 public static function delete(TlalokesRequest &$request)
 {
     try {
         AuthUsersPeer::doDelete($request->_id);
         return self::getAll($request);
     } catch (PropelException $e) {
         return preg_replace('/\\	/', '', tlalokes_str_sanitize($e->getMessage()));
     }
 }