找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 7529|回复: 0

[m0n0] 根据自己的需求对M0n0做个点修改,已可以正常使用了!

[复制链接]
发表于 2006-5-5 11:40:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
我这里用户只有100多,由于是包月,只要求认证,不要求进行计费,没有必要再增加一台认证计费服务器,于是使用M0n0的门户认证功能进行本地用户认证,用户数据使用本地数据,由于要求用户自己能修改自己的口令,但M0n0中只有System下的用户可以自己修改口令,门户网站的用户不能自己修改自己的口令,于是对M0n0进行了修改,主要改了两个地方:guiconfg.inc,它有个函数在用户排序中要用,但System用户和门户网站用户定义了相同的函数名,要修改其中一个,另外是修改了system_usermanager.php,在对System用户进行操作时,同时对门户网站的用户进行操作,同时还对门户网站的index.php进行了修改,汉化了Logout和Disconcent窗口。以上修改是基于1.22汉化版进行的,目前已在m0n0wall-1.2b7-HD-vmware版升级测试通过。下周在实体机上试试。
修改方法如下:其它的解包,打包就不说了,见其它的帖子。
一、修改guiconfig.inc
原来两部分的用户排序都使用相同的函数名cpusercmp,同时调用时会报错,我将其中一个改为了adminusercmp。
function captiveportal_users_sort() {
        global $g, $config;
        
        function cpusercmp($a, $b) {
                return strcasecmp($a['name'], $b['name']);
        }
        
        usort($config['captiveportal']['user'], "cpusercmp");
}

function admin_users_sort() {
        global $g, $config;
        
        function adminusercmp($a, $b) {
                return strcasecmp($a['name'], $b['name']);
        }
        
        usort($config['system']['user'], "adminusercmp");
}
二、修改system_usermanager.php
改过的地方加了中文注解
......
    if (!is_array($config['system']['user'])) {
            $config['system']['user'] = array();
        }
        admin_users_sort();
    $a_user = &$config['system']['user'];

        //同时操作captiveportal用户-获取数据
        if (!is_array($config['captiveportal']['user'])) {
                $config['captiveportal']['user'] = array();
        }
        captiveportal_users_sort();
        $ca_user = &$config['captiveportal']['user'];
   
    if ($_GET['act'] == "del") {
            if ($a_user[$_GET['id']]) {
                $userdeleted = $a_user[$_GET['id']]['name'];
                    unset($a_user[$_GET['id']]);
                        //同时操作captiveportal用户--删除
                        unset($ca_user[$_GET['id']]);
.........................
           
            if (!$input_errors) {
            
                    if (isset($id) && $a_user[$id]){
                            $userent = $a_user[$id];
                                //同时操作captiveportal用户--修改
                                $cuserent = $ca_user[$id];}
                    
                    $userent['name'] = $_POST['username'];
                    $userent['fullname'] = $_POST['fullname'];
                    $userent['groupname'] = $_POST['groupname'];
                        
                        //同时操作captiveportal用户--修改
                    $cuserent['name'] = $_POST['username'];
                    $cuserent['fullname'] = $_POST['fullname'];
                    $cuserent['expirationdate'] = '';

                    
                    if ($_POST['password']) {
                            $userent['password'] = crypt($_POST['password']);
                                //同时操作captiveportal用户--修改口令
                            $cuserent['password'] = md5($_POST['password']);}
                                
                    if (isset($id) && $a_user[$id]){
                            $a_user[$id] = $userent;
                                //同时操作captiveportal用户--修改原记录
                                $ca_user[$id] = $cuserent;}
                    else {
                            $a_user[] = $userent;
                            //同时操作captiveportal用户--新增记录
                                $ca_user[] = $cuserent;}

                    write_config();
                        $retval = system_password_configure();
                        $savemsg = get_std_save_message($retval);
                        
                        header("Location: system_usermanager.php");
            }
    }

?>
.....................
            if ($_POST['password'] != $_POST['password2'])
                      $input_errors[] = "密码不一致";
            
                if (!$input_errors) {
                        //all values are okay --> saving changes
                        $config['system']['user'][$userindex[$_SERVER['REMOTE_USER']]]['password']=crypt(trim($_POST['password']));
                        //同时操作captiveportal用户
                        $config['captiveportal']['user'][$userindex[$_SERVER['REMOTE_USER']]]['password']=md5(trim($_POST['password']));
                        write_config();
                        $retval = system_password_configure();
                        $savemsg = get_std_save_message($retval);
                        $savemsg = "密码修改成功";
                }               
        }

        
?>
...........
三、门户网站下的index.php,修改/usr/local/captiveportal 下的index.php,只是进行了汉化,不详细说了。
       另外增加了一个地址,如果用户用门户网站直接登录,则重定向到新浪。
        //如果用户请求的是登录页面,则重定向到:http://www.sina.com.cn   
        if ($my_redirurl = "http://{$config['interfaces'][$config['captiveportal']['interface']]['ipaddr']}:8000/")
        $my_redirurl = 'http://www.sina.com.cn';
routeros
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|手机版|小黑屋|软路由 ( 渝ICP备15001194号-1|渝公网安备 50011602500124号 )

GMT+8, 2024-12-26 12:21 , Processed in 0.174694 second(s), 14 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表