Chapter 41. コマンド(コマンドメール、makefml、CGI)

Table of Contents
各種コマンドで使うモジュール
コマンド処理のフロー
コマンドの拡張: コマンドメールの場合
コマンドの拡張: makefml の場合
コマンドの拡張: CGI の場合
補足: 『fml4と fml8 のコードの書き方はどのくらい違うか?』

各種コマンドで使うモジュール

fml8 では、コマンドメール、makefml そして CGI が使うモジュールは共有 されています。ただし、その権限の差異によって、一般ユーザ用のモジュール と管理者用のモジュールの2つに大きく分かれています。以下、これらのモジュー ル群の構成について解説します。

FML::Command:: クラスは以下のような構成になっています。

FML::Command		FML::Command クラス以下への入口、dispatcher
FML::Command::User	ユーザ用コマンド群
FML::Command::Admin	管理者用コマンド群
たとえば、(コマンドメールでの)ユーザ用コマンドの場合 FML::Command を経由して FML::Command::User::コマンド モジュールを呼び出しています。

(コマンドメールでの)一般ユーザ用コマンド

FML::Process::Command から FML::Command 経由で 「FML::Command::User::コマンド」 を呼び出しています。

最終的に 「FML::Command::Admin::コマンド」 を使うモジュールもあります。 たとえば登録と削除の実作業は 「FML::Command::Admin::コマンド」 にあるコードが行なっています。 すべてのプログラムで登録/削除作業の実体部分を共有するためです。 この場合、 「FML::Command::User::コマンド」は confirm を行なうための wrapper という位置付けになります。

(コマンドメールでの) 管理者用コマンド (admin コマンド)

FML::Process::Command から FML::Command 経由で 「FML::Command::Admin::コマンド」 を呼び出しています。

makefml

Warning

makefml を実行できる時点で、 サーバにログインできる管理者権限があるとみなされています。

FML::Process::Configure から FML::Command 経由で 「FML::Command::Admin::コマンド」 を呼び出しています。

CGI

Warning

CGI も一般ユーザむけの CGI と管理者用の CGI があります。

管理者用の CGI については、それを実行できる時点で、 管理者権限があるとみなされています。

アドレス登録/削除などのためにある一般ユーザ用の CGI は、 FML::Process::CGI から FML::Command 経由で 「FML::Command::User::コマンド」 を呼び出しています。 コマンドメールと同様に confirm のための wrapper という位置付けです。

管理者用の CGI は、FML::Process::CGI から FML::Command 経由で 「FML::Command::Admin::コマンド」 を呼び出しています。

fml 8.0 (fml-devel) project homepage is www.fml.org/software/fml8/.
fml 4.0 project homepage is www.fml.org/software/fml4/.
about one floppy bsd routers, see www.bsdrouter.org/.
other free softwares are found at www.fml.org/software/.

author's homepage is www.fml.org/home/fukachan/.
Also, visit nuinui's world :) at www.nuinui.net.

For questions about FML, e-mail <fml-bugs@fml.org>.