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 (
|
var (
|
||||||
// database management rest pattern, discard
|
// database management rest pattern, discard
|
||||||
XormGetDataUri = config.DefaultUriPrefix + "/databaseManagement/{apiVersion}/elementType/{databaseName}/objectType/{tableName}"
|
XormGetDataUri = config.DefaultUriPrefix + "/{managementModule}/{apiVersion}/elementType/{databaseName}/objectType/{tableName}"
|
||||||
XormSelectDataUri = config.DefaultUriPrefix + "/databaseManagement/{apiVersion}/select/{databaseName}/{tableName}"
|
XormSelectDataUri = config.DefaultUriPrefix + "/{managementModule}/{apiVersion}/select/{databaseName}/{tableName}"
|
||||||
XormInsertDataUri = config.DefaultUriPrefix + "/databaseManagement/{apiVersion}/insert/{databaseName}/{tableName}"
|
XormInsertDataUri = config.DefaultUriPrefix + "/{managementModule}/{apiVersion}/insert/{databaseName}/{tableName}"
|
||||||
XormUpdateDataUri = config.DefaultUriPrefix + "/databaseManagement/{apiVersion}/update/{databaseName}/{tableName}"
|
XormUpdateDataUri = config.DefaultUriPrefix + "/{managementModule}/{apiVersion}/update/{databaseName}/{tableName}"
|
||||||
XormDeleteDataUri = config.DefaultUriPrefix + "/databaseManagement/{apiVersion}/delete/{databaseName}/{tableName}"
|
XormDeleteDataUri = config.DefaultUriPrefix + "/{managementModule}/{apiVersion}/delete/{databaseName}/{tableName}"
|
||||||
|
|
||||||
CustomXormGetDataUri = config.UriPrefix + "/databaseManagement/{apiVersion}/elementType/{databaseName}/objectType/{tableName}"
|
CustomXormGetDataUri = config.UriPrefix + "/{managementModule}/{apiVersion}/elementType/{databaseName}/objectType/{tableName}"
|
||||||
CustomXormSelectDataUri = config.UriPrefix + "/databaseManagement/{apiVersion}/select/{databaseName}/{tableName}"
|
CustomXormSelectDataUri = config.UriPrefix + "/{managementModule}/{apiVersion}/select/{databaseName}/{tableName}"
|
||||||
CustomXormInsertDataUri = config.UriPrefix + "/databaseManagement/{apiVersion}/insert/{databaseName}/{tableName}"
|
CustomXormInsertDataUri = config.UriPrefix + "/{managementModule}/{apiVersion}/insert/{databaseName}/{tableName}"
|
||||||
CustomXormUpdateDataUri = config.UriPrefix + "/databaseManagement/{apiVersion}/update/{databaseName}/{tableName}"
|
CustomXormUpdateDataUri = config.UriPrefix + "/{managementModule}/{apiVersion}/update/{databaseName}/{tableName}"
|
||||||
CustomXormDeleteDataUri = config.UriPrefix + "/databaseManagement/{apiVersion}/delete/{databaseName}/{tableName}"
|
CustomXormDeleteDataUri = config.UriPrefix + "/{managementModule}/{apiVersion}/delete/{databaseName}/{tableName}"
|
||||||
|
|
||||||
XormCommonUri = config.DefaultUriPrefix + "/databaseManagement/{apiVersion}/{databaseName}/{tableName}" // for internal
|
XormCommonUri = config.DefaultUriPrefix + "/{managementModule}/{apiVersion}/{databaseName}/{tableName}" // for internal
|
||||||
XormExtDataUri = config.DefaultUriPrefix + "/dataManagement/{apiVersion}/{dataStorage}/{dataObject}" // for external
|
XormExtDataUri = config.DefaultUriPrefix + "/{managementModule}/{apiVersion}/{dataStorage}/{dataObject}" // for external
|
||||||
XormDataSQLUri = config.DefaultUriPrefix + "/dataManagement/{apiVersion}/{dataStorage}/{dataObject}" // for external
|
XormDataSQLUri = config.DefaultUriPrefix + "/{managementModule}/{apiVersion}/{dataStorage}/{dataObject}" // for external
|
||||||
|
|
||||||
CustomXormCommonUri = config.UriPrefix + "/databaseManagement/{apiVersion}/{databaseName}/{tableName}" // for internal
|
CustomXormCommonUri = config.UriPrefix + "/{managementModule}/{apiVersion}/{databaseName}/{tableName}" // for internal
|
||||||
CustomXormExtDataUri = config.UriPrefix + "/dataManagement/{apiVersion}/{dataStorage}/{dataObject}" // for external
|
CustomXormExtDataUri = config.UriPrefix + "/{managementModule}/{apiVersion}/{dataStorage}/{dataObject}" // for external
|
||||||
CustomXormDataSQLUri = config.UriPrefix + "/dataManagement/{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
|
var xormResponse XormResponse
|
||||||
@@ -261,12 +261,13 @@ func ExtDatabaseGetData(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
vars := mux.Vars(r)
|
vars := mux.Vars(r)
|
||||||
|
module := vars["managementModule"]
|
||||||
dbname := vars["dataStorage"]
|
dbname := vars["dataStorage"]
|
||||||
tbname := vars["dataObject"]
|
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 {
|
if err != nil {
|
||||||
log.Error("Failed to get permission:", err)
|
log.Error("Failed to get permission:", err)
|
||||||
services.ResponseForbidden403NotPermission(w)
|
services.ResponseForbidden403NotPermission(w)
|
||||||
@@ -349,11 +350,12 @@ func ExtDatabaseInsertData(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
vars := mux.Vars(r)
|
vars := mux.Vars(r)
|
||||||
|
module := vars["managementModule"]
|
||||||
dbname := vars["dataStorage"]
|
dbname := vars["dataStorage"]
|
||||||
tbname := vars["dataObject"]
|
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 {
|
if err != nil {
|
||||||
log.Error("Failed to get permission:", err)
|
log.Error("Failed to get permission:", err)
|
||||||
services.ResponseForbidden403NotPermission(w)
|
services.ResponseForbidden403NotPermission(w)
|
||||||
@@ -403,11 +405,12 @@ func ExtDatabaseUpdateData(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
vars := mux.Vars(r)
|
vars := mux.Vars(r)
|
||||||
|
module := vars["managementModule"]
|
||||||
dbname := vars["dataStorage"]
|
dbname := vars["dataStorage"]
|
||||||
tbname := vars["dataObject"]
|
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 {
|
if err != nil {
|
||||||
log.Error("Failed to get permission:", err)
|
log.Error("Failed to get permission:", err)
|
||||||
services.ResponseForbidden403NotPermission(w)
|
services.ResponseForbidden403NotPermission(w)
|
||||||
@@ -464,11 +467,12 @@ func ExtDatabaseDeleteData(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
vars := mux.Vars(r)
|
vars := mux.Vars(r)
|
||||||
|
module := vars["managementModule"]
|
||||||
dbname := vars["dataStorage"]
|
dbname := vars["dataStorage"]
|
||||||
tbname := vars["dataObject"]
|
tbname := vars["dataObject"]
|
||||||
|
|
||||||
log.Debugf("token:%s, method:%s, dbname:%s, tbname:%s", token, 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), dbname, tbname)
|
exist, err := services.CheckUserPermission(token, strings.ToLower(r.Method), module, dbname, tbname)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error("Failed to get permission:", err)
|
log.Error("Failed to get permission:", err)
|
||||||
services.ResponseForbidden403NotPermission(w)
|
services.ResponseForbidden403NotPermission(w)
|
||||||
|
|||||||
@@ -90,11 +90,12 @@ func ExtDatabaseBackupData(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
vars := mux.Vars(r)
|
vars := mux.Vars(r)
|
||||||
|
module := vars["managementModule"]
|
||||||
dbname := vars["dataStorage"]
|
dbname := vars["dataStorage"]
|
||||||
tbname := vars["dataObject"]
|
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 {
|
if err != nil {
|
||||||
log.Error("Failed to get permission:", err)
|
log.Error("Failed to get permission:", err)
|
||||||
services.ResponseForbidden403NotPermission(w)
|
services.ResponseForbidden403NotPermission(w)
|
||||||
|
|||||||
+3
-2
@@ -57,6 +57,7 @@ func PostMMLToNF(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
vars := mux.Vars(r)
|
vars := mux.Vars(r)
|
||||||
|
module := vars["managementModule"]
|
||||||
neType := vars["elementTypeValue"]
|
neType := vars["elementTypeValue"]
|
||||||
params := r.URL.Query()
|
params := r.URL.Query()
|
||||||
neId := params["ne_id"]
|
neId := params["ne_id"]
|
||||||
@@ -67,13 +68,13 @@ func PostMMLToNF(w http.ResponseWriter, r *http.Request) {
|
|||||||
}
|
}
|
||||||
log.Debug("neType:", neType, "neId", neId)
|
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 buf [8192]byte
|
||||||
var n int
|
var n int
|
||||||
var mmlResult []string
|
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 {
|
if err != nil {
|
||||||
log.Error("Failed to get permission:", err)
|
log.Error("Failed to get permission:", err)
|
||||||
errMsg := fmt.Sprintf("RetCode = -1 operation failed: do not have the operation permissions")
|
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"`
|
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... ")
|
log.Info("IsPermissionAllowed processing... ")
|
||||||
|
|
||||||
exist, err := xEngine.Table("permission").
|
exist, err := xEngine.Table("permission").
|
||||||
Join("INNER", "role_permission", "permission.permission_name = role_permission.p_name").
|
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", "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).
|
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()
|
Exist()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return false, err
|
return false, err
|
||||||
|
|||||||
@@ -417,9 +417,18 @@ func CheckCommonValidRequest(w http.ResponseWriter, r *http.Request) (string, er
|
|||||||
return token, nil
|
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 {
|
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 {
|
if err != nil {
|
||||||
return false, err
|
return false, err
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user