2018.12.10
団体用集金システムを作りたい!#16【EloquentORM-属性キャスト-】
やーーーっとこさここまでこぎつけました。長かった・・・・・・。(こんな難航するシステムじゃないはずなんだが・・・・・・)
すごい機械的な名前にしていますけど、まぁ分離できるモジュールは分離したいなぁと思ってまして・・・・・・。一応マネタイズが前提のシステムなので・・・・・・
とりあえず、メンバー管理モジュールからメンバーの登録や編集などなど、そしてグループリストによるグルーピング、そしてメーリスモジュールによりメーリス機能を実装し、最後に集金計画モジュールを完成させてプロトタイプとする予定です。
この後は必要そうな機能を逐一実装していく、って形になると思うんですけど、デザイン面もなんとかしなきゃなーって感じです。まぁそれはある程度形になってからでもよさそうですけどね。
さて、今日はすっごい簡単な話です。EloquentORMにすごい便利な機能があったのでご紹介という形のメモです。
class Hierarchy extends Model
{
protected $primaryKey="hierarchy_id";
protected $fillable = [
'name','o_id',"administrator",
'mc_add','mc_delete','mc_edit','mc_check','mc_see',
'mb_add','mb_edit','mb_delete','mb_see','mail_can',
'list_make','list_edit','list_delete',
];
protected $guarded = [
];
protected $hidden = [
'mc_add','mc_delete','mc_edit','mc_check','mc_see',
'list_make','list_edit','list_delete',
];
protected $casts = [
'administrator' => 'boolean',
'mc_add' => 'boolean',
'mc_delete' => 'boolean',
'mc_edit' => 'boolean',
'mc_check' => 'boolean',
'mc_see' => 'boolean',
'mb_add' => 'boolean',
'mb_edit' => 'boolean',
'mb_delete' => 'boolean',
'mb_see' => 'boolean',
'mail_can' => 'boolean',
'list_make' => 'boolean',
'list_edit' => 'boolean',
'list_delete' => 'boolean',
];
...
}
グループとかにしたらよかったんですが、何を思ったのかヒエラルキーというテーブルを作りました(笑)
で、グループごとに権限が付与される形式を取っているので、こんな感じにそれぞれの権限をブーリアンで管理してます。
これをどのような扱いにするのかはまだ未定なんですけど、まぁ可能な限り細分化して管理できたらなあとは思っています。
ちなみに、administrator(管理者)がどのような権限を持つのかってのは実は決めてないんですよね(笑)
とりあえず、
「administratorは自分自身administratorでなくすることはできない」「adninistratorは自団体をスクラップにすることができる」「administrator権限は任意のグループに付与することができない」「任意のグループに権限付与の権利を与えることができる」といった特別な権限であることは決まっています。とりあえず、すべてのグループを統括する頂点として、デフォルトですべての権限が付与された状態で作成されるので、まぁあとは好きなようにカスタマイズしてくださいね、って感じの運営がいてもいいかなみたいなスタンスです。
さて、ここからメンバーを追加していくわけですが、ここからが僕がどうしても実現したかったシステムの肝となる部分ですね。
既に答えを言っていますが、
団員に登録作業をさせるからシステムは流行らねえんだよって僕は思ってるので、それが具体的にどのように実装されるのか、自慢したり調整したりといったのを日記に書きたいなあと思っています(笑)(笑)