mml
This commit is contained in:
1 parent
3e726ddd99
commit
882baa2e0b
5 files changed
+49
-34
No files matched your search
+30
-26
@@ -29,30 +29,30 @@ type XormInsertResponse struct {
|
||||
|
||||
var (
|
||||
// database management rest pattern, discard
|
||||
XormGetDataUri = config.DefaultUriPrefix + "/databaseManagement/{apiVersion}/elementType/{databaseName}/objectType/{tableName}"
|
||||
XormSelectDataUri = config.DefaultUriPrefix + "/databaseManagement/{apiVersion}/select/{databaseName}/{tableName}"
|
||||
XormInsertDataUri = config.DefaultUriPrefix + "/databaseManagement/{apiVersion}/insert/{databaseName}/{tableName}"
|
||||
XormUpdateDataUri = config.DefaultUriPrefix + "/databaseManagement/{apiVersion}/update/{databaseName}/{tableName}"
|
||||
XormDeleteDataUri = config.DefaultUriPrefix + "/databaseManagement/{apiVersion}/delete/{databaseName}/{tableName}"
|
||||
XormGetDataUri = config.DefaultUriPrefix + "/{managementModule}/{apiVersion}/elementType/{databaseName}/objectType/{tableName}"
|
||||
XormSelectDataUri = config.DefaultUriPrefix + "/{managementModule}/{apiVersion}/select/{databaseName}/{tableName}"
|
||||
XormInsertDataUri = config.DefaultUriPrefix + "/{managementModule}/{apiVersion}/insert/{databaseName}/{tableName}"
|
||||
XormUpdateDataUri = config.DefaultUriPrefix + "/{managementModule}/{apiVersion}/update/{databaseName}/{tableName}"
|
||||
XormDeleteDataUri = config.DefaultUriPrefix + "/{managementModule}/{apiVersion}/delete/{databaseName}/{tableName}"
|
||||
|
||||
CustomXormGetDataUri = config.UriPrefix + "/databaseManagement/{apiVersion}/elementType/{databaseName}/objectType/{tableName}"
|
||||
CustomXormSelectDataUri = config.UriPrefix + "/databaseManagement/{apiVersion}/select/{databaseName}/{tableName}"
|
||||
CustomXormInsertDataUri = config.UriPrefix + "/databaseManagement/{apiVersion}/insert/{databaseName}/{tableName}"
|
||||
CustomXormUpdateDataUri = config.UriPrefix + "/databaseManagement/{apiVersion}/update/{databaseName}/{tableName}"
|
||||
CustomXormDeleteDataUri = config.UriPrefix + "/databaseManagement/{apiVersion}/delete/{databaseName}/{tableName}"
|
||||
CustomXormGetDataUri = config.UriPrefix + "/{managementModule}/{apiVersion}/elementType/{databaseName}/objectType/{tableName}"
|
||||
CustomXormSelectDataUri = config.UriPrefix + "/{managementModule}/{apiVersion}/select/{databaseName}/{tableName}"
|
||||
CustomXormInsertDataUri = config.UriPrefix + "/{managementModule}/{apiVersion}/insert/{databaseName}/{tableName}"
|
||||
CustomXormUpdateDataUri = config.UriPrefix + "/{managementModule}/{apiVersion}/update/{databaseName}/{tableName}"
|
||||
CustomXormDeleteDataUri = config.UriPrefix + "/{managementModule}/{apiVersion}/delete/{databaseName}/{tableName}"
|
||||
|
||||
XormCommonUri = config.DefaultUriPrefix + "/databaseManagement/{apiVersion}/{databaseName}/{tableName}" // for internal
|
||||
XormExtDataUri = config.DefaultUriPrefix + "/dataManagement/{apiVersion}/{dataStorage}/{dataObject}" // for external
|
||||
XormDataSQLUri = config.DefaultUriPrefix + "/dataManagement/{apiVersion}/{dataStorage}/{dataObject}" // for external
|
||||
XormCommonUri = config.DefaultUriPrefix + "/{managementModule}/{apiVersion}/{databaseName}/{tableName}" // for internal
|
||||
XormExtDataUri = config.DefaultUriPrefix + "/{managementModule}/{apiVersion}/{dataStorage}/{dataObject}" // for external
|
||||
XormDataSQLUri = config.DefaultUriPrefix + "/{managementModule}/{apiVersion}/{dataStorage}/{dataObject}" // for external
|
||||
|
||||
CustomXormCommonUri = config.UriPrefix + "/databaseManagement/{apiVersion}/{databaseName}/{tableName}" // for internal
|
||||
CustomXormExtDataUri = config.UriPrefix + "/dataManagement/{apiVersion}/{dataStorage}/{dataObject}" // for external
|
||||
CustomXormDataSQLUri = config.UriPrefix + "/dataManagement/{apiVersion}/{dataStorage}/{dataObject}" // for external
|
||||
CustomXormCommonUri = config.UriPrefix + "/{managementModule}/{apiVersion}/{databaseName}/{tableName}" // for internal
|
||||
CustomXormExtDataUri = config.UriPrefix + "/{managementModule}/{apiVersion}/{dataStorage}/{dataObject}" // for external
|
||||
CustomXormDataSQLUri = config.UriPrefix + "/{managementModule}/{apiVersion}/{dataStorage}/{dataObject}" // for external
|
||||
|
||||
// 查询数据库连接情况
|
||||
UriDbConnection = config.DefaultUriPrefix + "/dataManagement/{apiVersion}/dbConnection"
|
||||
UriDbConnection = config.DefaultUriPrefix + "/{managementModule}/{apiVersion}/dbConnection"
|
||||
// 终结非法的数据库连接
|
||||
UriDbStop = config.DefaultUriPrefix + "/dataManagement/{apiVersion}/dbStop"
|
||||
UriDbStop = config.DefaultUriPrefix + "/{managementModule}/{apiVersion}/dbStop"
|
||||
)
|
||||
|
||||
var xormResponse XormResponse
|
||||
@@ -261,12 +261,13 @@ func ExtDatabaseGetData(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
vars := mux.Vars(r)
|
||||
module := vars["managementModule"]
|
||||
dbname := vars["dataStorage"]
|
||||
tbname := vars["dataObject"]
|
||||
|
||||
log.Debugf("token:%s, method:%s, dbname:%s, tbname:%s", token, r.Method, dbname, tbname)
|
||||
log.Debugf("token:%s, method:%s, dbname:%s, tbname:%s", token, r.Method, module, dbname, tbname)
|
||||
|
||||
exist, err := services.CheckUserPermission(token, strings.ToLower(r.Method), dbname, tbname)
|
||||
exist, err := services.CheckUserPermission(token, strings.ToLower(r.Method), module, dbname, tbname)
|
||||
if err != nil {
|
||||
log.Error("Failed to get permission:", err)
|
||||
services.ResponseForbidden403NotPermission(w)
|
||||
@@ -349,11 +350,12 @@ func ExtDatabaseInsertData(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
vars := mux.Vars(r)
|
||||
module := vars["managementModule"]
|
||||
dbname := vars["dataStorage"]
|
||||
tbname := vars["dataObject"]
|
||||
|
||||
log.Debugf("token:%s, method:%s, dbname:%s, tbname:%s", token, r.Method, dbname, tbname)
|
||||
exist, err := services.CheckUserPermission(token, strings.ToLower(r.Method), dbname, tbname)
|
||||
log.Debugf("token:%s, method:%s, dbname:%s, tbname:%s", token, r.Method, module, dbname, tbname)
|
||||
exist, err := services.CheckUserPermission(token, strings.ToLower(r.Method), module, dbname, tbname)
|
||||
if err != nil {
|
||||
log.Error("Failed to get permission:", err)
|
||||
services.ResponseForbidden403NotPermission(w)
|
||||
@@ -403,11 +405,12 @@ func ExtDatabaseUpdateData(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
vars := mux.Vars(r)
|
||||
module := vars["managementModule"]
|
||||
dbname := vars["dataStorage"]
|
||||
tbname := vars["dataObject"]
|
||||
|
||||
log.Debugf("token:%s, method:%s, dbname:%s, tbname:%s", token, r.Method, dbname, tbname)
|
||||
exist, err := services.CheckUserPermission(token, strings.ToLower(r.Method), dbname, tbname)
|
||||
log.Debugf("token:%s, method:%s, dbname:%s, tbname:%s", token, r.Method, module, dbname, tbname)
|
||||
exist, err := services.CheckUserPermission(token, strings.ToLower(r.Method), module, dbname, tbname)
|
||||
if err != nil {
|
||||
log.Error("Failed to get permission:", err)
|
||||
services.ResponseForbidden403NotPermission(w)
|
||||
@@ -464,11 +467,12 @@ func ExtDatabaseDeleteData(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
vars := mux.Vars(r)
|
||||
module := vars["managementModule"]
|
||||
dbname := vars["dataStorage"]
|
||||
tbname := vars["dataObject"]
|
||||
|
||||
log.Debugf("token:%s, method:%s, dbname:%s, tbname:%s", token, r.Method, dbname, tbname)
|
||||
exist, err := services.CheckUserPermission(token, strings.ToLower(r.Method), dbname, tbname)
|
||||
log.Debugf("token:%s, method:%s, module:%, dbname:%s, tbname:%s", token, r.Method, module, dbname, tbname)
|
||||
exist, err := services.CheckUserPermission(token, strings.ToLower(r.Method), module, dbname, tbname)
|
||||
if err != nil {
|
||||
log.Error("Failed to get permission:", err)
|
||||
services.ResponseForbidden403NotPermission(w)
|
||||
|
||||
@@ -90,11 +90,12 @@ func ExtDatabaseBackupData(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
vars := mux.Vars(r)
|
||||
module := vars["managementModule"]
|
||||
dbname := vars["dataStorage"]
|
||||
tbname := vars["dataObject"]
|
||||
|
||||
log.Debugf("token:%s, method:%s, dbname:%s, tbname:%s", token, r.Method, dbname, tbname)
|
||||
exist, err := services.CheckUserPermission(token, strings.ToLower(r.Method), dbname, tbname)
|
||||
log.Debugf("token:%s, method:%s, dbname:%s, tbname:%s", token, r.Method, module, dbname, tbname)
|
||||
exist, err := services.CheckUserPermission(token, strings.ToLower(r.Method), module, dbname, tbname)
|
||||
if err != nil {
|
||||
log.Error("Failed to get permission:", err)
|
||||
services.ResponseForbidden403NotPermission(w)
|
||||
|
||||
+3
-2
@@ -57,6 +57,7 @@ func PostMMLToNF(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
|
||||
vars := mux.Vars(r)
|
||||
module := vars["managementModule"]
|
||||
neType := vars["elementTypeValue"]
|
||||
params := r.URL.Query()
|
||||
neId := params["ne_id"]
|
||||
@@ -67,13 +68,13 @@ func PostMMLToNF(w http.ResponseWriter, r *http.Request) {
|
||||
}
|
||||
log.Debug("neType:", neType, "neId", neId)
|
||||
|
||||
log.Debugf("token:%s, method:%s, dbname:%s, tbname:%s", token, r.Method, neType, neId[0])
|
||||
log.Debugf("token:%s, method:%s, managementModule:%s dbname:%s, tbname:%s", token, r.Method, module, neType, neId[0])
|
||||
|
||||
var buf [8192]byte
|
||||
var n int
|
||||
var mmlResult []string
|
||||
|
||||
exist, err := services.CheckUserPermission(token, strings.ToLower(r.Method), neType, neId[0])
|
||||
exist, err := services.CheckUserPermission(token, strings.ToLower(r.Method), module, neType, neId[0])
|
||||
if err != nil {
|
||||
log.Error("Failed to get permission:", err)
|
||||
errMsg := fmt.Sprintf("RetCode = -1 operation failed: do not have the operation permissions")
|
||||
|
||||
+2
-2
@@ -1484,14 +1484,14 @@ type permission struct {
|
||||
Object string `json:"object"`
|
||||
}
|
||||
|
||||
func IsPermissionAllowed(token, method, dbname, tbname string) (bool, error) {
|
||||
func IsPermissionAllowed(token, method, module, dbname, tbname string) (bool, error) {
|
||||
log.Info("IsPermissionAllowed processing... ")
|
||||
|
||||
exist, err := xEngine.Table("permission").
|
||||
Join("INNER", "role_permission", "permission.permission_name = role_permission.p_name").
|
||||
Join("INNER", "user_role", "role_permission.r_name = user_role.r_name").
|
||||
Join("INNER", "session", "user_role.u_name = session.account_id and session.access_token=?", token).
|
||||
Where("method in ('*',?) and element in ('*',?) and object in ('*',?)", method, dbname, tbname).
|
||||
Where("method in ('*',?) and management in ('*',?) and element in ('*',?) and object in ('*',?)", method, module, dbname, tbname).
|
||||
Exist()
|
||||
if err != nil {
|
||||
return false, err
|
||||
|
||||
@@ -417,9 +417,18 @@ func CheckCommonValidRequest(w http.ResponseWriter, r *http.Request) (string, er
|
||||
return token, nil
|
||||
}
|
||||
|
||||
func CheckUserPermission(token, method, dbname, tbname string) (bool, error) {
|
||||
func CheckUserPermission(token, method, module, dbname, tbname string) (bool, error) {
|
||||
if config.GetYamlConfig().OMC.RBACMode == true {
|
||||
exist, err := dborm.IsPermissionAllowed(token, method, dbname, tbname)
|
||||
if module == "" {
|
||||
module = "*"
|
||||
}
|
||||
if dbname == "" {
|
||||
dbname = "*"
|
||||
}
|
||||
if tbname == "" {
|
||||
tbname = "*"
|
||||
}
|
||||
exist, err := dborm.IsPermissionAllowed(token, method, module, dbname, tbname)
|
||||
if err != nil {
|
||||
return false, err
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user