我有一个应用程序,我们提供了一个非常友好的界面来管理数据。这是通过许多控制器来完成的。添加/编辑/查看功能。但现在我们应该有超级管理员和#34;能够编辑任何东西,脚手架将给他们一个快速和肮脏的方式来改变数据。由于脚手架默认使用添加/编辑/查看,我无意中覆盖了脚手架的能力。
我无法改变我的所有来电编辑/添加我们的用户友好"数据管理。所以我想基本上忽略添加/编辑/视图,例如,当用户有一个标记为"是的,请让我脚手架"。我想象它会是这样的:
public function edit($id) {
if (admin_user) {
$scaffold;
} else {
[user-friendly version code]
}
}
但没有骰子。我怎样才能实现我的目标?
答案 0 :(得分:1)
假设您已经拥有管理员用户,并且您只想构建超级用户:
另外假设您将有关超级用户的信息存储在super
表中名为users
的列中
Configure::write('Routing.prefixes', array('admin', 'super));
你的appController中的
public $scaffold = 'super';
beforFilter() {
if($this->Auth->user('super') && !isset($this->params['super'])
$this->redirect(array('super' => true));
}
现在我无法尝试这段代码,但这个想法应该可行。
编辑:我们需要检查我们是否已经在super_action中以避免无限重定向