/** * 保存用户组对应的权限 */ static function saveAccess($group_id, $access) { GroupAccess::model()->deleteAllByAttributes(array('group_id' => $group_id)); foreach ($access as $access_id) { $model = new GroupAccess(); $model->group_id = $group_id; $model->access_id = $access_id; $model->save(); } }
/** * 生成权限列表 */ static function access($id) { if (!$id) { return false; } if (!cache('acl')) { $model = User::model()->findByPk($id); if ($model->groups) { //调用 models/Group foreach ($model->groups as $g) { $access = GroupAccess::model()->findAllByAttributes(array('group_id' => $g->group_id)); if ($access) { foreach ($access as $a) { $list[] = GroupAccess::access($a->access_id); } } } } cache('acl', $list); } return cache('acl'); }