<?php

include dirname(__FILE__) . '/api/dbconfig.php';

$UID=1122;
$GID=1122;

$account = @$argv[1];
$password = @$argv[2];

if(empty($account)) {
  exit(0);
}

$options = array(PDO::MYSQL_ATTR_INIT_COMMAND=>"SET CHARACTER SET 'utf8'");
$dbh = new PDO(DB_DSN, DB_USER, DB_PASSWORD, $options);

$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

error_reporting(E_ALL & ~E_NOTICE);

$stmt = $dbh->prepare("SELECT ftp.*,member_pass as password,u.exp_flg FROM userdata as u INNER JOIN ftp ON ftp.id=u.id AND ftp.del_flg='0' WHERE u.member_id=? AND u.del_flg='0'");
$stmt->execute(array($account));
$result = $stmt->fetch(PDO::FETCH_ASSOC);

if (!$result) {
  print("auth_ok:0\n");
  print("end\n");
  exit(0);
}
if ($result['password'] != $password) {
  print("auth_ok:-1\n");
  print("end\n");
  exit(0);
}
if ($result['exp_flg'] != '0') {
  print("auth_ok:-1\n");
  print("end\n");
  exit(0);
}

$sql = <<<EOF
SELECT 
  CASE
    WHEN u.freeend_date IS NULL THEN 2
    WHEN NOW() < DATE_ADD(GREATEST(IFNULL((SELECT
      MAX(end_date)
    FROM
      activation
    WHERE
      used=u.id
    AND
      del_flg='0'
    AND
      start_date <= NOW()
    AND
      end_date IS NOT NULL),
    u.freeend_date),u.freeend_date), INTERVAL 15 DAY) THEN 0
    ELSE 1
  END as state,
  IF(c.capacity < c2.capacity, c2.capacity, c.capacity) as capacity,
  IF(s.session  < s2.session, s2.session, s.session) as session
FROM userdata as u
INNER JOIN capacity_master as c ON c.id=u.capacity
INNER JOIN session_master as s ON s.id=u.session
LEFT OUTER JOIN
  activation as act
ON
  act.used=u.id
AND
  act.plan_id>0
AND
  act.del_flg='0'
AND
  act.start_date <= NOW()
AND
  NOW() < act.end_date
INNER JOIN capacity_master as c2 ON c2.id=IFNULL(act.capacity,0)
INNER JOIN session_master as s2 ON s2.id=IFNULL(act.session,0)
WHERE
  u.member_id=?
EOF;
$stmt = $dbh->prepare($sql);
$stmt->execute(array($account));
$check = $stmt->fetch(PDO::FETCH_ASSOC);
$readonly = $check['state'];

if ($readonly == 2) {
  print("auth_ok:-1\n");
  print("end\n");
  exit(0);
}

if(!file_exists($result['dir'])) {
  mkdir($result['dir'],0755,true);
  chown($result['dir'],$UID);
  chgrp($result['dir'],$GID);
}
print("auth_ok:1\n");
printf("uid:%s\n", $UID);
printf("gid:%s\n", $GID);
printf("dir:%s\n", $result['dir']);
if(!empty($result['throttling_bandwidth_ul'])) {
  printf("throttling_bandwidth_ul:%d\n", $result['throttling_bandwidth_ul']);
}
if(!empty($result['throttling_bandwidth_dl'])) {
  printf("throttling_bandwidth_dl:%d\n", $result['throttling_bandwidth_dl']);
}
if(!empty($check['capacity'])) {
  printf("user_quota_size:%d\n", $check['capacity']);
}
printf("per_user_max:%d\n", $check['session']);
printf("readonly:%d\n", $readonly);
print("end\n");
