iPhoneで食事箋5
ユーザーが登録できるようになりました。作り方は色々あると思いますので、自身でアレンジしてみて下さい。
次は削除ボタンの処理を作っていきます。
毎度のここからです。
単純にレコード削除だとダメなの?というところなんですが、ダメです。
Powerユーザー以上でなければ削除ボタンは表示しないようになっていますので、よさそうにも思えますが、では間違えてPowreユーザー消してしまったらどうでしょう?
そりゃadmin権限でログインすれば追加できますけど。
Powerユーザーだったら削除できないようにしておかないと後々面倒なことにもなりかねません。何人もPowerユーザーを登録すればいいのかもしれませんが、このソフトは、Powerユーザー1人、後はみんな一般ユーザー扱いでの運用を想定してます。
複数人Powerユーザーが存在するようにしたければ、admin以外Passwordも隠した方がいいかもしれませんね。
これで権限が「1」でなければ削除できなくなりました。権限を「1」に変更後は削除できちゃうんですけど、それはまた後で考えましょう。
では権限が「1」なら削除したいので、このIf文にElseを追加して
確認メッセージ表示後に実行したいので
赤丸で囲んだ部分は、確認後、さらに最終確認をしたい場合は「オン」、何回も確認いらないという場合は「オフ」にしてください。
削除ボタンができあがりました。
さて権限なんですが、今は数値でそのまま入力になっていますが、できれば以前作った
こんなボタンになってくれると、色々都合がいいこともありまして・・・そうしてしまいます。
せっかく配置して、ユーザーによって隠す設定とかしましたが、一度削除しそこにボタンバーを配置します。
作り方は医薬品集の自作のところを見て下さい。
では、このボタンを押した時の処理を作ってみましょう。
こんなこと書いてますが、単純に単一ステップでフィールドの値を変えるだけでもいいとおもいます。
切替だけならこれでもいいのですが、1人もPowerユーザーがいなくなってしまう事態を避ける仕組みがありません。
Powerユーザーが他にもいるか調べるには・・・検索ですね。
その結果が1より多ければ(つまり2以上ですね)、自分の他にもPowerユーザーがいることになりますので、
このIf文の間に先程の処理を入れてあげればなんとなくできそうな気もするのですが、やってみますか。
最後に「全レコードを表示」で検索を解除するのを忘れずに。
これ、まだ足りません。なんだか分かりますか?
確かにPowerユーザーが1人しかいない場合、そのユーザーを一般ユーザーに変更することはできないのですが、一般ユーザーをPowerユーザーにもできないんです。
今の権限が一般ユーザーだった場合はPowerユーザーに変更できるようにしておかないと、管理者の変更とかできないことになってしまいます。
ということで、
こんな感じに。
とりあえず動かしてみると、確かに一般からPowerにすることはできるのですが、Powerから一般が上手くいきませんでした。
実際動かしてみないと分からないこともあるんです。
何でかと言いますと、検索した時点でフォーカス外れちゃってるんですよ。だから目的のアカウント以外の権限が変わってしまうという症状が・・・。
検索だけ別のレイアウトを作成してという方法も考えられますが、なんとかこの画面だけで済ませたいので、
分かります?やってることは、
権限が「1(一般)」だったら「0(Power)」に
権限が「0」だったらまずそのユーザーIDを変数に保存、次に権限「0」を検索し、2人以上いたら変数に保存しておいたアカウントで検索して、その権限を「1」に変更、1人しかいなかったらそのまま。
最後に検索した状態だったら全てのデータを表示する
という処理をしています。
あとはボタンバーも一般ユーザーだった場合は表示しないようにして、やっとユーザー管理画面のできあがり・・・ではないです。
ユーザーパスワードを変更する仕組みがありません。
こんな画面。よくみますよね。