public static function getRules() { $sql = "SELECT aid,role_id,model_id,feature_id,scope_id FROM rule ORDER BY role_id ASC"; $rules = Haproxy::findBySql($sql)->asArray()->all(); $acl = array(); $unique = array(); foreach ($rules as $k => $v) { $app = Haproxy::findBySql("SELECT id,name FROM app WHERE id={$v['aid']}")->asArray()->one(); $acl[$k]['app'] = $app['name']; $acl[$k]['role_id'] = $v['role_id']; $user = Haproxy::findBySql("SELECT uid FROM role_user WHERE rid={$v['role_id']} ORDER BY uid ASC")->asArray()->all(); $userStr = ''; foreach ($user as $vu) { $userStr .= $vu['uid'] . " "; } $acl[$k]['user'] = $userStr; $model = Haproxy::findBySql("SELECT id,name FROM model WHERE id={$v['model_id']}")->asArray()->one(); $acl[$k]['model'] = $model['name']; $feature = Haproxy::findBySql("SELECT id,name FROM feature WHERE id={$v['feature_id']}")->asArray()->one(); $acl[$k]['feature'] = $feature['name']; $scope = Haproxy::findBySql("SELECT scope_id FROM rule WHERE aid={$v['aid']} AND role_id={$v['role_id']} AND model_id={$v['model_id']} AND feature_id={$v['feature_id']} ORDER BY scope_id ASC")->asArray()->all(); $scopeStr = ''; foreach ($scope as $vs) { $scopeStr .= $vs['scope_id'] . " "; } $acl[$k]['scope'] = $scopeStr; $unique[$k] = $v['aid'] . $v['role_id'] . $v['model_id'] . $v['feature_id']; } $rules = array('acl' => $acl, 'unique' => $unique); return $rules; }