ここの情報は古いです。ご理解頂いた上でお取り扱いください。

Changeset 999


Ignore:
Timestamp:
Dec 2, 2006, 7:07:31 AM (14 years ago)
Author:
ishida
Message:

http://trac.openpne.jp/ticket/313
管理画面からAPIの使用・未使用の選択をする

仕様


config.inc.sampleについて

API通信使用設定
define('OPENPNE_USE_API', false);
有効のままです。

許可するIPリスト('any'が含まれている場合はIPをチェックしません)
$GLOBALS_OPENPNE_API_IP_LIST?
無効になりました。
この値は無視します。


Location:
OpenPNE/branches/ishida/prj_dev26
Files:
7 added
10 edited

Legend:

Unmodified
Added
Removed
  • OpenPNE/branches/ishida/prj_dev26/webapp/modules/admin/lib/db_admin.php

    r747 r999  
    931931}
    932932
     933/*************************
     934APIここから
     935**************************/
     936
     937//APIを全て取得(ページャー付き)
     938function db_admin_get_c_api_all($page, $page_size, &$pager)
     939{
     940    $sql = 'SELECT * FROM c_api ORDER BY c_api_id';
     941
     942    $list = db_get_all_page($sql, $page, $page_size, $params);
     943
     944    $sql = 'SELECT count(*) FROM c_api';
     945    $total_num = db_get_one($sql, $params);
     946    $pager = admin_make_pager($page, $page_size, $total_num);
     947
     948    return $list;
     949}
     950
     951
     952//APIを一つ取得
     953function db_admin_get_c_api_one($name)
     954{
     955    $sql = 'SELECT * FROM c_api WHERE name = ?';
     956    $params = array(strval($name));
     957
     958    return db_get_row($sql, $params);
     959}
     960
     961
     962//APIを編集
     963function db_admin_update_c_api($c_api_id, $name, $ip)
     964{
     965    $data = array(
     966        'name' => strval($name),
     967        'ip' => strval($ip),
     968    );
     969    $where = array('c_api_id' => intval($c_api_id));
     970    return db_update('c_api', $data, $where);
     971}
     972
     973//APIが許可しているIPかどうかチェックする
     974function db_admin_api_check_ip($name, $ip)
     975{
     976    $api = db_admin_get_c_api_one($name);
     977    if ($api['ip'] == '*' || $api['ip'] == $ip) {
     978        return true;
     979    } else {
     980        return false;
     981    }
     982}
     983
    933984?>
  • OpenPNE/branches/ishida/prj_dev26/webapp/modules/admin/lib/etc_admin.php

    r2 r999  
    3333function admin_make_pager($page, $page_size, $total_num)
    3434{
     35    if ($total_num == 0) {
     36        return;
     37    }
    3538    $pager = array(
    3639        'page' => $page,
     
    107110}
    108111
     112//IPアドレスとして正しいか
     113//XXX.XXX.XXX.XXX or *(アスタリスク)
     114function admin_is_ip($ip)
     115{
     116    return preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/',$ip);
     117}
     118
     119//APIを許容するIPアドレスとして正しいか
     120//XXX.XXX.XXX.XXX or *(アスタリスク) or 空
     121function admin_api_is_ip($ip)
     122{
     123    if (!$ip || $ip == '*') {
     124        return true;
     125    } else {
     126        return admin_is_ip($ip);
     127    }
     128}
     129
    109130?>
  • OpenPNE/branches/ishida/prj_dev26/webapp/modules/admin/templates/inc_header.tpl

    r828 r999  
    4747<li><a href="?m=({$module_name})&amp;a=page_({$hash_tbl->hash('edit_c_banner')})" title="バナー管理: トップバナー、サイドバナー追加、任意HTML挿入">バナー管理</a></li>
    4848<li><a href="?m=({$module_name})&amp;a=page_({$hash_tbl->hash('limit_domain')})" title="ドメイン制限: ドメイン制限追加、編集、削除">ドメイン制限</a></li>
     49<li><a href="?m=({$module_name})&amp;a=page_({$hash_tbl->hash('list_c_api')})" title="OpenPNE API設定: API通信を許可するIPアドレスの設定">OpenPNE API設定</a></li>
     50<li><a href="?m=({$module_name})&amp;a=page_({$hash_tbl->hash('list_c_cmd')})" title="CMD設定: CMDを許可するページの設定">CMD設定</a></li>
    4951</ul>
    5052
  • OpenPNE/branches/ishida/prj_dev26/webapp/modules/api/auth.inc

    r2 r999  
    55 */
    66
    7 // IP制限
    8 if (!in_array('any', (array)$GLOBALS['_OPENPNE_API_IP_LIST'])) {
    9     $ip = $_SERVER[SERVER_IP_KEY];
    10     if (!in_array($ip, (array)$GLOBALS['_OPENPNE_API_IP_LIST'])) {
    11         exit('Access Denied');
    12     }
    13 }
    14 
    157?>
  • OpenPNE/branches/ishida/prj_dev26/webapp/modules/api/init.inc

    r2 r999  
    99}
    1010
     11require_once OPENPNE_MODULES_DIR . '/admin/lib/db_admin.php';
     12
    1113?>
  • OpenPNE/branches/ishida/prj_dev26/webapp/modules/api/lib/xmlrpc/000_auth.php

    r2 r999  
    1010function xmlrpc_000_auth($message)
    1111{
     12    //IPアドレス制限
     13    if (!db_admin_api_check_ip("000_auth", $_SERVER[SERVER_IP_KEY])) {
     14        exit('Access Denied');
     15    }
     16
    1217    $param = $message->getParam(0);
    1318    if (!XML_RPC_Value::isValue($param)) {
  • OpenPNE/branches/ishida/prj_dev26/webapp/modules/api/lib/xmlrpc/001_get_c_member.php

    r2 r999  
    77function xmlrpc_001_get_c_member($message)
    88{
     9    //IPアドレス制限
     10    if (!db_admin_api_check_ip("001_get_c_member", $_SERVER[SERVER_IP_KEY])) {
     11        exit('Access Denied');
     12    }
     13
    914    $param = $message->getParam(0);
    1015    if (!XML_RPC_Value::isValue($param)) {
  • OpenPNE/branches/ishida/prj_dev26/webapp/modules/api/lib/xmlrpc/002_get_member_point.php

    r2 r999  
    77function xmlrpc_002_get_member_point($message)
    88{
     9    //IPアドレス制限
     10    if (!db_admin_api_check_ip("002_get_member_point", $_SERVER[SERVER_IP_KEY])) {
     11        exit('Access Denied');
     12    }
     13
    914    $param = $message->getParam(0);
    1015    if (!XML_RPC_Value::isValue($param)) {
  • OpenPNE/branches/ishida/prj_dev26/webapp/modules/api/lib/xmlrpc/101_add_point.php

    r2 r999  
    77function xmlrpc_101_add_point($message)
    88{
     9    //IPアドレス制限
     10    if (!db_admin_api_check_ip("101_add_point", $_SERVER[SERVER_IP_KEY])) {
     11        exit('Access Denied');
     12    }
     13
    914    $param = $message->getParam(0);
    1015    if (!XML_RPC_Value::isValue($param)) {
  • OpenPNE/branches/ishida/prj_dev26/webapp/modules/api/lib/xmlrpc/smtp2pne.php

    r113 r999  
    1111function xmlrpc_smtp2pne($message)
    1212{
     13    //IPアドレス制限
     14    if (!db_admin_api_check_ip("smtp2pne", $_SERVER[SERVER_IP_KEY])) {
     15        exit('Access Denied');
     16    }
     17
    1318    // パラメータを取得
    1419    $param = $message->getParam(0);
Note: See TracChangeset for help on using the changeset viewer.