围城
分类: LINUX
2015-05-18 17:53:43
玩openwrt的人都会知道LuCI,因为每次进入系统的时候会有大大的字显示了luci interface configuration,有了这个接口确实不错,方便傻瓜般的配置我们的界面。
最近把802.1x认证给弄进去了,为了实现能卖出去的目标,实现LuCI的界面配置还真的挺重要的。
网上一找,还真的傻眼了,没有啊没有。就百度一篇,那人写的还让人相当纠结,看不懂。
那就去官网看吧
在官网的resource中可以找到一个
别的先不说,直接就奔我们的主题吧
硬是要翻译的话,就是怎么写一个模块,ok,我就是想要写802.1x的认证模块
按照官方的说法,要完成一个模块并用到里面需要两个东西,
第一个我们先找到usr/lib/lua/luci/controller在里面建立一个文件夹,也就是我们的模块名称,就叫smustar吧
在smustar下面再写我们模块的主文件就叫smumodule.lua吧
参考官网,我们的模块写法应该是这样子的
module(“luci.controller.smustar.smumodule”, package.seeall)
function index()
entry({“admin”, “network”, “802.1x”}, cbi(“smustar-smumodule/netifaces”), “Network interfaces”, 30).dependent=false
end
第一句话是声明一下这个模块了,没什么可说的。
第二句话就是我们模块的主函数,其中呢要告诉它我们的入口,与其说入口,不如说就是告诉它是要admin登录才能用的,是在network这个菜单下,名字呢,叫做802.1x。模块执行的程序呢在smustar-smumodule/netifaces这里。
好了各位又郁闷了smustar-smumodule/netifaces是什么东西,这是我们要建立的另外一个文件,上面不是说要两个么
我们找到路径/usr/lib/lua/luci/module
在下面建立文件夹smustar-smmodule建立文件netfaces.lua
好了接下来就是要在netfaces.lua写我们的程序了,参考官网所说的这个什么luci最酷的地方,也就是修改config文件
不要说你不懂什么是config文件了,最简单的比如network。
我们在/etc/config下面建立一个配置文件叫smuset吧
那这就是一个config文件的写法
config ‘interface’ ‘smustar’
option ‘user’ ‘youruser’
option ‘pass’ ‘yourpass’
ok这个config文件就是这样子了接下来写netfaces.lua
m = Map(“smuset”, “smustar”) — We want to edit the uci config file /etc/config/smustar 这里是我们要配置的文件了,默认的路径它已经能够区别的,不用管了
s = m:section(TypedSection, “interface”, “smustar”) — Especially the “interface”-sections读出里面的interface区域来
s.addremove = true — Allow the user to create and remove the interfaces
s:option(Value, “user”, “youruser”)这个能就是一个input即一个输入框了读取的是smuset中的user项。youruser是提示语罗
key=s:option(Value, “pass”, “your password”)
key.password=true; 设置为星号的密码输入框
return m — Returns the map
好了文件就完成了,之后我们进入luci配置界面
在network下可以看到了802.1x选项
进入后有账号和密码输入框 改一下之后
save&apply一下,发现密码被修改了。我们的802.1x配置界面就做好了!