github.com/infraboard/keyauth@v0.8.1/apps/policy/request_ext.go (about)

     1  package policy
     2  
     3  import (
     4  	"fmt"
     5  	"net/http"
     6  
     7  	"github.com/go-playground/validator/v10"
     8  	"github.com/infraboard/mcube/http/request"
     9  )
    10  
    11  const (
    12  	MaxUserPolicy = 2048
    13  )
    14  
    15  // use a single instance of Validate, it caches struct info
    16  var (
    17  	validate = validator.New()
    18  )
    19  
    20  // NewQueryPolicyRequestFromHTTP 列表查询请求
    21  func NewQueryPolicyRequestFromHTTP(r *http.Request) *QueryPolicyRequest {
    22  	page := request.NewPageRequestFromHTTP(r)
    23  	req := NewQueryPolicyRequest(page)
    24  
    25  	qs := r.URL.Query()
    26  	req.Account = qs.Get("account")
    27  	req.RoleId = qs.Get("role_id")
    28  	req.NamespaceId = qs.Get("namespace_id")
    29  	req.WithRole = qs.Get("with_role") == "true"
    30  	req.WithNamespace = qs.Get("with_namespace") == "true"
    31  	return req
    32  }
    33  
    34  // NewQueryPolicyRequest 列表查询请求
    35  func NewQueryPolicyRequest(pageReq *request.PageRequest) *QueryPolicyRequest {
    36  	return &QueryPolicyRequest{
    37  		Page:          pageReq,
    38  		WithRole:      false,
    39  		WithNamespace: false,
    40  	}
    41  }
    42  
    43  // Validate 校验请求是否合法
    44  func (req *QueryPolicyRequest) Validate() error {
    45  	return validate.Struct(req)
    46  }
    47  
    48  func (req *QueryPolicyRequest) CheckOwner(account string) bool {
    49  	return req.Account == account
    50  }
    51  
    52  // NewDescriptPolicyRequest new实例
    53  func NewDescriptPolicyRequest() *DescribePolicyRequest {
    54  	return &DescribePolicyRequest{}
    55  }
    56  
    57  // Validate todo
    58  func (req *DescribePolicyRequest) Validate() error {
    59  	if req.Id == "" {
    60  		return fmt.Errorf("policy id required")
    61  	}
    62  
    63  	return nil
    64  }
    65  
    66  // NewDeletePolicyRequestWithID todo
    67  func NewDeletePolicyRequestWithID(id string) *DeletePolicyRequest {
    68  	req := NewDeletePolicyRequest()
    69  	req.Id = id
    70  	return req
    71  }
    72  
    73  // NewDeletePolicyRequestWithNamespaceID todo
    74  func NewDeletePolicyRequestWithNamespaceID(namespaceID string) *DeletePolicyRequest {
    75  	req := NewDeletePolicyRequest()
    76  	req.NamespaceId = namespaceID
    77  	return req
    78  }
    79  
    80  // NewDeletePolicyRequestWithAccount todo
    81  func NewDeletePolicyRequestWithAccount(account string) *DeletePolicyRequest {
    82  	req := NewDeletePolicyRequest()
    83  	req.Account = account
    84  	return req
    85  }
    86  
    87  // NewDeletePolicyRequestWithRoleID todo
    88  func NewDeletePolicyRequestWithRoleID(roleID string) *DeletePolicyRequest {
    89  	req := NewDeletePolicyRequest()
    90  	req.RoleId = roleID
    91  	return req
    92  }
    93  
    94  // NewDeletePolicyRequest todo
    95  func NewDeletePolicyRequest() *DeletePolicyRequest {
    96  	return &DeletePolicyRequest{}
    97  }
    98  
    99  // Validate todo
   100  func (req *DeletePolicyRequest) Validate() error {
   101  	if req.Id == "" {
   102  		return fmt.Errorf("policy id required")
   103  	}
   104  
   105  	return nil
   106  }