feat: make hard-coded authz adapter editable, rename adapter to ormer (#2149)

* refactor: rename casbinAdapter to casdoorAdapter

* feat: add initEnforcer

* fix: router

* refactor: make hard-coded code configurable

* fix: data type

* feat: support sqlite3

* feat: disable delete and edit name for built in resources

* feat: optimize code

* fix: init

* fix: e2e

* fix: remove datasourcename

* fix: revert rename

* refactor: change all ORM's Adatper to Ormer

* refactor: name
This commit is contained in:
Yaodong Yu
2023-07-29 15:07:04 +08:00
committed by GitHub
parent 74b058aa3f
commit ea10f8e615
56 changed files with 1314 additions and 1031 deletions

View File

@ -98,7 +98,7 @@ func GetTokenCount(owner, organization, field, value string) (int64, error) {
func GetTokens(owner string, organization string) ([]*Token, error) {
tokens := []*Token{}
err := adapter.Engine.Desc("created_time").Find(&tokens, &Token{Owner: owner, Organization: organization})
err := ormer.Engine.Desc("created_time").Find(&tokens, &Token{Owner: owner, Organization: organization})
return tokens, err
}
@ -115,7 +115,7 @@ func getToken(owner string, name string) (*Token, error) {
}
token := Token{Owner: owner, Name: name}
existed, err := adapter.Engine.Get(&token)
existed, err := ormer.Engine.Get(&token)
if err != nil {
return nil, err
}
@ -129,7 +129,7 @@ func getToken(owner string, name string) (*Token, error) {
func getTokenByCode(code string) (*Token, error) {
token := Token{Code: code}
existed, err := adapter.Engine.Get(&token)
existed, err := ormer.Engine.Get(&token)
if err != nil {
return nil, err
}
@ -142,7 +142,7 @@ func getTokenByCode(code string) (*Token, error) {
}
func updateUsedByCode(token *Token) bool {
affected, err := adapter.Engine.Where("code=?", token.Code).Cols("code_is_used").Update(token)
affected, err := ormer.Engine.Where("code=?", token.Code).Cols("code_is_used").Update(token)
if err != nil {
panic(err)
}
@ -167,7 +167,7 @@ func UpdateToken(id string, token *Token) (bool, error) {
return false, nil
}
affected, err := adapter.Engine.ID(core.PK{owner, name}).AllCols().Update(token)
affected, err := ormer.Engine.ID(core.PK{owner, name}).AllCols().Update(token)
if err != nil {
return false, err
}
@ -176,7 +176,7 @@ func UpdateToken(id string, token *Token) (bool, error) {
}
func AddToken(token *Token) (bool, error) {
affected, err := adapter.Engine.Insert(token)
affected, err := ormer.Engine.Insert(token)
if err != nil {
return false, err
}
@ -185,7 +185,7 @@ func AddToken(token *Token) (bool, error) {
}
func DeleteToken(token *Token) (bool, error) {
affected, err := adapter.Engine.ID(core.PK{token.Owner, token.Name}).Delete(&Token{})
affected, err := ormer.Engine.ID(core.PK{token.Owner, token.Name}).Delete(&Token{})
if err != nil {
return false, err
}
@ -195,7 +195,7 @@ func DeleteToken(token *Token) (bool, error) {
func ExpireTokenByAccessToken(accessToken string) (bool, *Application, *Token, error) {
token := Token{AccessToken: accessToken}
existed, err := adapter.Engine.Get(&token)
existed, err := ormer.Engine.Get(&token)
if err != nil {
return false, nil, nil, err
}
@ -205,7 +205,7 @@ func ExpireTokenByAccessToken(accessToken string) (bool, *Application, *Token, e
}
token.ExpiresIn = 0
affected, err := adapter.Engine.ID(core.PK{token.Owner, token.Name}).Cols("expires_in").Update(&token)
affected, err := ormer.Engine.ID(core.PK{token.Owner, token.Name}).Cols("expires_in").Update(&token)
if err != nil {
return false, nil, nil, err
}
@ -221,7 +221,7 @@ func ExpireTokenByAccessToken(accessToken string) (bool, *Application, *Token, e
func GetTokenByAccessToken(accessToken string) (*Token, error) {
// Check if the accessToken is in the database
token := Token{AccessToken: accessToken}
existed, err := adapter.Engine.Get(&token)
existed, err := ormer.Engine.Get(&token)
if err != nil {
return nil, err
}
@ -235,7 +235,7 @@ func GetTokenByAccessToken(accessToken string) (*Token, error) {
func GetTokenByTokenAndApplication(token string, application string) (*Token, error) {
tokenResult := Token{}
existed, err := adapter.Engine.Where("(refresh_token = ? or access_token = ? ) and application = ?", token, token, application).Get(&tokenResult)
existed, err := ormer.Engine.Where("(refresh_token = ? or access_token = ? ) and application = ?", token, token, application).Get(&tokenResult)
if err != nil {
return nil, err
}
@ -440,7 +440,7 @@ func RefreshToken(grantType string, refreshToken string, scope string, clientId
}
// check whether the refresh token is valid, and has not expired.
token := Token{RefreshToken: refreshToken}
existed, err := adapter.Engine.Get(&token)
existed, err := ormer.Engine.Get(&token)
if err != nil || !existed {
return &TokenError{
Error: InvalidGrant,