質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

2回答

675閲覧

管理者だけ見れるようにしたい

kuuhaku4262

総合スコア39

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

1クリップ

投稿2020/05/01 03:53

編集2020/05/01 04:59

前提

cakephp2.x系、html、javascriptで管理用のページを作っています。
マスタ画面が複数あり、マスタ画面では新規登録・編集削除が行えます。

実現したい内容

AマスタとBマスタがあります。
Aマスタには「管理権限」という項目があり、「管理者」か「その他」を選べるようになっています。そして、1人1データ持っています。

Bマスタには「その他」に分類されている人の個人データが登録されています。
しかし、個人データは「その他」に分類されている人に見られないようにしないといけません。

なので、Aマスタで「管理者」が選択されている人がログインしたときだけBマスタの個人データを表示するようにしたいです。

Aマスタ・Bマスタ・ログインに関するプログラムはすでにできています。

###Aマスタ

CREATE SEQUENCE users_id_seq; create table public.users ( id integer default nextval('users_id_seq') PRIMARY KEY , mail varchar(254) not null , password varchar(255) not null , onetime_password varchar(255) , onetime_limit timestamp , group_id integer not null , created_user integer not null , created_datetime timestamp not null , modified_user integer not null , modified_datetime timestamp not null );

###Bマスタ

CREATE SEQUENCE mt_employees_id_seq; create table public.mt_employees ( id integer default nextval('mt_employees_id_seq') PRIMARY KEY , mt_section_id integer not null , work_type varchar(10) not null , mt_employement_class_id integer not null , type integer not null , employee_name varchar(20) not null , employee_number varchar(10) not null , employment_day date not null default '1989-01-01' , paid_holiday_base_day date not null default '1989-07-01' , mt_office_id integer not null , mt_written_section_id integer not null , basic_salary integer not null default 0 , allowance_one integer not null default 0 , allowance_two integer not null default 0 , commuting_allowance integer not null default 0 , monthly_total integer not null default 0 , ordinary_overtime_unit_price integer not null default 0 , midnight_overtime_unit_price integer not null default 0 , bonus integer not null default 0 , health_insurance integer not null default 0 , long_term_care_insurance integer not null default 0 , welfare_pension integer not null default 0 , child_allowance integer not null default 0 , employment_insurance integer not null default 0 , lndustrial_accident_insurance integer not null default 0 , other_one integer not null default 0 , insurance_total integer not null default 0 , retirement_fund_external integer not null default 0 , retirement_fund_in_house integer not null default 0 , work_clothes integer not null default 0 , other_two integer not null default 0 , order_no integer not null , created_user integer not null , created_datetime timestamp not null , modified_user integer not null , modified_datetime timestamp not null );

最後に

とてもふわっとしたことしか書けず、申し訳ございません。
全くやり方が分からないため、少しでも手掛かりが掴めればと質問させていただきました。
もし、わかる方がいましたらご回答のほどよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

結局のところ、言葉の選択により混乱している気がします。

質問や回答のコメントなどをざっと見ると、
「ログイン中のユーザーが管理者ならば個人データを表示し、その他なら表示しない」
ということではないでしょうか?

それなら、データベースからデータを引っ張ってくるところに上記の条件分岐をすればよいと思われます。

そもそもの自分の理解が間違っている場合はおっしゃっていただけると幸いです。

投稿2020/05/01 06:21

kyoya0819

総合スコア10429

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kuuhaku4262

2020/05/01 06:54

それで、間違いないです! 分かりやすくまとめてくださりありがとうございます。 上記は、この人は管理者でこの人はその他で....というのは分かります。 しかし、実際に今ログインしているのは誰なのかというデータが無いため管理者かどうかを特定することが出来ません。 なので、誰がログインしているのかをはっきりさせる方法が知りたいです。
kyoya0819

2020/05/01 07:04

ログイン処理については独自の実装ですか?
kuuhaku4262

2020/05/01 07:29

独自の実装になります。 しかしそれを作ったのは自分ではないので中身がわからず、しかしソースコードをただ載せてしまうと文字数オーバーになってしまうのでどうしたらいいかわからない状態です。
guest

0

パーミッション的な考え方をしてください
権限者:権限者グループ:その他、の3つでアクセス権を設定すれば
大抵のきりわけはできると思います
(その他スーパーユーザー的な特権者は必要)

投稿2020/05/01 04:00

yambejp

総合スコア115010

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kuuhaku4262

2020/05/01 04:13

Bマスタのすべてが個人データではないため、その他のデータは管理者以外の人も見れないといけません。 アクセス権限で縛ってしまうと、そのページが全て見れなくなってしまうので上記の方法はできないと考えています。(間違えていたら、すいません)
kuuhaku4262

2020/05/01 04:13

htmlの特定の行を別のマスタの項目に応じて表示・非表示を変える必要があります。
yambejp

2020/05/01 04:17

質問のとおり「ふわっと」しすぎです 突っ込んで質問したいならもっとわかりやすい例示をしてください
kuuhaku4262

2020/05/01 04:27

では、具体的にはどのあたりが足りないと思いますか?
yambejp

2020/05/01 04:51 編集

「マスタ」とはなにか?からじゃないですか? RDBのテーブルを想定しているならそのテーブルを create table+insertで例示ください また、どのデータをどういう権限で閲覧可能・不可能かを 具体的に書いてもらうと回答しやすいと思います
kaina

2020/05/01 04:50

よく分らん。 AマスタもBマスタも利用者マスタでAマスタには管理者ユーザのみ登録されていて、 Bマスタにはその他ユーザのみ登録されているってこと? もしそうであれば、Aマスタ、Bマスタに分けている設計がそもそも間違いと思われます。
kuuhaku4262

2020/05/01 05:01

参考になるか分かりませんが2つのテーブルのsqlを追加しました。 RDBではないです。
kuuhaku4262

2020/05/01 05:04

車両とそのドライバーを管理するページ(ツール)です。 Aマスタはそのページの利用者マスタです。 Bマスタはドライバーの情報を管理するマスタです。
kuuhaku4262

2020/05/01 05:05

利用者というのは、管理者とその他(ドライバー)の2つになります。
kuuhaku4262

2020/05/01 05:06

分かりづらくてすいません。
kaina

2020/05/01 06:08

ログインした際にmt_employeesマスタの情報を表示する機能があって、 その他ユーザでログインした場合には、その他ユーザの情報は除外した情報のみを表示したいけど、mt_employeesマスタにはその他ユーザかそれ以外かを識別する情報を保持していないし、 usersマスタとmt_employeesマスタ間のリレーションが無いってこと?
kuuhaku4262

2020/05/01 06:50

Aマスタに登録されている人と、Bマスタに登録されている人は全くの別人で被ることはありません。 ですので、BマスタにはAマスタとは全く関係のない人のデータが登録されており そのデータの一部をAマスタの管理者だけが見れるようにしたいです。 それ以外はおおむね合っています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問