Example #1
0
 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;
 }
Example #2
0
 public function actionIndex()
 {
     $rules = Haproxy::getRules();
     $acl = $rules['acl'];
     $unique = array_unique($rules['unique']);
     $rule = array();
     foreach ($unique as $k => $v) {
         $rule[] = $acl[$k];
     }
     $str = '';
     foreach ($rule as $v) {
         $str .= "acl app_" . $v['app'] . "_role_" . $v['role_id'] . "_" . $v['model'] . "_" . $v['feature'] . "_app\t\thdr(X-App)\t\t" . $v['app'] . "\n";
         $str .= "acl app_" . $v['app'] . "_role_" . $v['role_id'] . "_" . $v['model'] . "_" . $v['feature'] . "_role\t\thdr(X-Role)\t\t" . $v['user'] . "\n";
         $str .= "acl app_" . $v['app'] . "_role_" . $v['role_id'] . "_" . $v['model'] . "_" . $v['feature'] . "_scopes\t\thdr(X-Scope)\t" . $v['scope'] . "\n";
         $str .= "acl app_" . $v['app'] . "_role_" . $v['role_id'] . "_" . $v['model'] . "_" . $v['feature'] . "_feature\tpath_reg\t\t-i\t\t/" . $v['model'] . "/" . $v['feature'] . "\n";
         $str .= "use_backend dynamic\tif app_" . $v['app'] . "_role_" . $v['role_id'] . "_" . $v['model'] . "_" . $v['feature'] . "_app app_" . $v['app'] . "_role_" . $v['role_id'] . "_" . $v['model'] . "_" . $v['feature'] . "_role app_" . $v['app'] . "_role_" . $v['role_id'] . "_" . $v['model'] . "_" . $v['feature'] . "_scopes app_" . $v['app'] . "_role_" . $v['role_id'] . "_" . $v['model'] . "_" . $v['feature'] . "_feature\n\n";
     }
     echo $str;
     // return $this->render('index',['username'=>'Alex']);
 }