マチルダのユーザー管理と権限機能について


はじめに

ユーザー権限機能を使うと、例えば使用する各ユーザーに対して、制限を儲けたり、安全を提供したりすることが可能になります。例えば以下のような動作のさせ方を提供できます。

Aさんには、図形表示や検索、図形編集、属性編集をすることができる管理者モードとして実行。
Bさんには、図形は表示や検索できるが、図形の編集や属性編集をすることはできないモードとして実行。
Cさんには、図形は表示や検索できるが、属性のみを編集することができるモードとして実行。
Dさんには、全て表示や検索するだけで各種編集は不可能な完全なリードオンリーモードとして実行。
Eさんには、建物レイヤーの属性だけ編集可能ですが、その他のレイヤーは図形や属性の編集ができないモードとして実行。

などなど・・・というように細かく各種レイヤー別に設定する可能になります。つまり、いらん事させたくないユーザーにはそれなりの制御することができます。

本機能は情報の漏洩を完全に防ぐというセキュリティ目的ガチガチな使い方ではなく、シンプルな使い方を想定して作られています。従いましてサーバーを別途用意する必要もなく手軽に扱う事ができます。
また、グループ識別制御機能も搭載していますので、ログインしたユーザー毎に所属グループを設定することができ、さらに利用可能なプロジェクト主題図を選択させて目的の地図をスムーズに表示させる機能も使う事ができます。


ユーザー認証

matilda.exe(64ビット版はmatilda64.exe)と同じフォルダに「auth_user.sqlite」という管理ファイルを置くことによってユーザー認証モードとしてマチルダを起動する事ができます。
起動すると次のようなユーザ名とパスワードの入力を求めるダイアログフォームが表示されます。
ユーザー認証情報は、全てのこの「auth_user.sqlite」にテーブルとして情報が記述されていますので、もしこのファイルが同じフォルダになければ、通常モードとして実行されます。




ユーザー認証が完了すると、その該当するユーザーがどのグループに所属していて、どのプロジェクト主題図を読み込む事が可能なのかをマチルダが識別します。


プロジェクト主題図

所属しているグループの情報をもとに、読み込み可能なプロジェクト主題図のリストが表示されます。

実際にはこのリストから目的のものをダブルクリックするか、選択して「開く」をクリックするとマチルダに対象のプロジェクト主題図が読み込みされて表示されます。

ユーザーの所属しているグループが大量にプロジェクト主題図を利用できる設定をしている場合に備えて、フィルタ検索機能が搭載されています。日本語でも半角英数字でもキーボードから入力することで目的のプロジェクト主題図を簡単に限定して表示することができます。


プロジェクト選択をして読み込みした場合はレジェンドパネルのタブの部分に「プロジェクト」というタブが自動的に追加されます(の部分)

ここをクリックすることでユーザー認証(ログイン)直後じゃなくても自由な時にプロジェクト主題図を変更することが可能です。


レジェンドパネルのタブからプロジェクト主題図選択ボタンをクリックした場合は「現在の表示位置を保持」というチェックボックkすが表示されます。(の部分)

ここにチェックが入っている状態でプロジェクト主題図を開くと、現在の表示位置をそのままの状態としてその対象となるプロジェクト主題図を表示させることができます。

類似しているプロジェクト主題図を切り替えて表示したい場合には、ユーザーにとってとても便利な機能です。
従いまして、大量のレイヤーを記述した重たいプロジェクトを何かでガリガリと制御するよりも、細かくてコンパクトなプロジェクト主題図を作ってそれを切り替える事でさらに動きのパフォーマンス性が増すように体感速度としても向上しているのを感じることができます。



※大阪テスト1

現在表示されている拡大率(ズーム)とその位置。



※大阪テスト2(瞬時に切り替わる)

プロジェクト主題図が切り替わってもその位置が変わらない様に表示される。




設定データベースの仕様

設定データベースはSQLiteを使っているのでウェブ上にいくつも存在する優秀でアプリケーションを使って開く事が可能です。以下のものなどはフリーソフトで配信されています。

PupSQLite
DB Browser for SQLite
DBeaver


テーブルといて現在は次の3種類があります。この3つのテーブルの中を編集することで権限の全ての動きの制御が可能です。

T_group・・・・・・・・所属グループ
T_project ・・・・・・・表示プロジェクト
T_user ・・・・・・・・ユーザー認証情報


(ユーザー認証情報)

T_userテーブルを開くと次のようになります。



ユーザー認証情報テーブル(T_user)は以下のようにフィールドが存在し、役割は次のようになっています。

[id]・・・・・・・・・・・・  自動連番
[username]・・・・・・・・  ユーザー名。
[password]・・・・・・・・  パスワード。
[displayname]・・・・・・・ 表示名。
[group]・・・・・・・・・・  所属グループ。
[discription]・・・・・・・・   備考やメモ。


(プロジェクト主題図)

T_projectテーブルを開くと次のようになります。



所属グループテーブル(T_project)は以下のようにフィールドが存在し、役割は次のようになっています。

[id]・・・・・・・・・・・・  自動連番
[code]・・・・・・・・・・  プロジェクトコード。ユニークにしておく必要がある。半角カンマ","はダメ。
[projectname]・・・・・・    リストに表示するプロジェクト名
[projectfilepath]・・・・・・ マチルダのプロジェクトファイル(*.ttkproject)
[picturefilepath]・・・・・・  写真や画像データベースファイル(将来向け。現在はまだ使えない)
[attributefilepath]・・・・・   拡張属性データベースファイル(将来向け。現在はまだ使えない)
[memo]・・・・・・・・・   備考。メモなど。


(所属グループ)

T_groupテーブルを開くと次のようになります。



所属グループテーブル(T_group)は以下のようにフィールドが存在し、役割は次のようになっています。

[id]・・・・・・・・・・・・  自動連番
[group]・・・・・・・・・・  グループ名。ユニークにしておく必要がある。
[display_projectcode]・・・    半角アスタリスク"*"で全てを表示。限定したい場合は半角カンマ","で区切ってT_projectに入力されているプロジェクトコードをセット。
[modify_attribute]・・・・・   半角アスタリスク"*"で全ての属性編集が可能。限定する場合はレイヤー名を半角カンマ","で区切ってセット。
[modify_shape]・・・・・・   半角アスタリスク"*"で全ての図形編集が可能。限定する場合はレイヤー名を半角カンマ","で区切ってセット。
[disctiption]・・・・・・・・   備考。メモなど。


※レイヤー名を指定するときは「レイヤー名」です。「レイヤーキャプション」ではないことに注意。また指定なしは「権限がなし」という意味になります。


動画サンプルデモ



サクッとシンプルにイメージをつかむためには、この1分間くらいのの動画がおすすめ。


サンプルデータと設定ファイル

以下からダウンロードが可能です。

ダウンロード