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

Changeset 1076


Ignore:
Timestamp:
Dec 7, 2006, 8:59:40 PM (13 years ago)
Author:
takanashi
Message:

#314 管理画面からのCMDの使用・未使用の選択機能

Location:
OpenPNE/trunk
Files:
2 added
6 edited
7 copied

Legend:

Unmodified
Added
Removed
  • OpenPNE/trunk/webapp/lib/db/api.php

    r881 r1076  
    1515    }
    1616}
    17 
    18 ?>
    19 <?php
    20 /**
    21  * @copyright 2005-2006 OpenPNE Project
    22  * @license   http://www.php.net/license/3_01.txt PHP License 3.01
    23  */
    2417
    2518function db_api_insert_token($c_member_id, $token = '')
     
    6457}
    6558
     59
     60//API‚ðˆê‚Ž擾
     61function db_api_get_c_api_one($name)
     62{
     63    $sql = 'SELECT * FROM c_api WHERE name = ?';
     64    $params = array(strval($name));
     65
     66    return db_get_row($sql, $params);
     67}
     68
     69//API‚ª‹–‰Â‚µ‚Ä‚¢‚éIP‚©‚Ç‚¤‚©ƒ`ƒFƒbƒN‚·‚é
     70function db_api_check_ip($name, $ip)
     71{
     72    $api = db_api_get_c_api_one($name);
     73    if ($api['ip'] == '*' || $api['ip'] == $ip) {
     74        return true;
     75    } else {
     76        return false;
     77    }
     78}
     79
     80
     81
    6682?>
  • OpenPNE/trunk/webapp/modules/admin/lib/db_admin.php

    r939 r1076  
    18571857}
    18581858
     1859//APIを全て取得(ページャー付き)
     1860function db_admin_get_c_api_all($page, $page_size, &$pager)
     1861{
     1862    $sql = 'SELECT * FROM c_api ORDER BY c_api_id';
     1863
     1864    $list = db_get_all_page($sql, $page, $page_size, $params);
     1865
     1866    $sql = 'SELECT count(*) FROM c_api';
     1867    $total_num = db_get_one($sql, $params);
     1868    $pager = admin_make_pager($page, $page_size, $total_num);
     1869
     1870    return $list;
     1871}
     1872
     1873//APIを編集
     1874function db_admin_update_c_api($c_api_id, $name, $ip)
     1875{
     1876    $data = array(
     1877        'name' => strval($name),
     1878        'ip' => strval($ip),
     1879    );
     1880    $where = array('c_api_id' => intval($c_api_id));
     1881    return db_update('c_api', $data, $where);
     1882}
     1883
    18591884?>
  • OpenPNE/trunk/webapp/modules/admin/lib/etc_admin.php

    r945 r1076  
    3434function admin_make_pager($page, $page_size, $total_num)
    3535{
     36    if ($total_num == 0) {
     37        return;
     38    }
    3639    $pager = array(
    3740        'page' => $page,
     
    114117}
    115118
     119//IPアドレスとして正しいか
     120//例:XXX.XXX.XXX.XXX
     121function admin_is_ip($ip)
     122{
     123    return preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/',$ip);
     124}
     125
     126//APIを許容するIPアドレスとして正しいか
     127//XXX.XXX.XXX.XXX or *(アスタリスク) or 空
     128function admin_api_is_ip($ip)
     129{
     130    if (!$ip || $ip == '*') {
     131        return true;
     132    } else {
     133        return admin_is_ip($ip);
     134    }
     135}
     136
    116137?>
  • OpenPNE/trunk/webapp/modules/admin/templates/inc_header.tpl

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

    r2 r1076  
    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 }
     7
    148
    159?>
  • OpenPNE/trunk/webapp/modules/api/do/xmlrpc.php

    r2 r1076  
    2727                    include_once realpath("$dir/$file");
    2828                    $name = substr($file, 0, -4);
    29                     $dispMap[$name] = array('function' => 'xmlrpc_' . $name);
     29                    if (db_api_check_ip($name,$_SERVER[SERVER_IP_KEY])) {
     30                        $dispMap[$name] = array('function' => 'xmlrpc_' . $name);
     31                    } else {
     32                        $dispMap[$name] = array('function' => 'xmlrpc_deny');
     33                    }
    3034                }
    3135                closedir($dh);
Note: See TracChangeset for help on using the changeset viewer.