mirror of
https://github.com/drakkan/sftpgo.git
synced 2025-12-06 22:30:56 +03:00
EventManager: add IDP login trigger and check account action
Signed-off-by: Nicola Murino <nicola.murino@gmail.com>
This commit is contained in:
@@ -2280,6 +2280,10 @@ func getEventActionOptionsFromPostFields(r *http.Request) (dataprovider.BaseEven
|
||||
if r.Form.Get("cmd_arguments") != "" {
|
||||
cmdArgs = getSliceFromDelimitedValues(r.Form.Get("cmd_arguments"), ",")
|
||||
}
|
||||
idpMode := 0
|
||||
if r.Form.Get("idp_mode") == "1" {
|
||||
idpMode = 1
|
||||
}
|
||||
options := dataprovider.BaseEventActionOptions{
|
||||
HTTPConfig: dataprovider.EventActionHTTPConfig{
|
||||
Endpoint: r.Form.Get("http_endpoint"),
|
||||
@@ -2323,6 +2327,11 @@ func getEventActionOptionsFromPostFields(r *http.Request) (dataprovider.BaseEven
|
||||
PwdExpirationConfig: dataprovider.EventActionPasswordExpiration{
|
||||
Threshold: pwdExpirationThreshold,
|
||||
},
|
||||
IDPConfig: dataprovider.EventActionIDPAccountCheck{
|
||||
Mode: idpMode,
|
||||
TemplateUser: strings.TrimSpace(r.Form.Get("idp_user")),
|
||||
TemplateAdmin: strings.TrimSpace(r.Form.Get("idp_admin")),
|
||||
},
|
||||
}
|
||||
return options, nil
|
||||
}
|
||||
@@ -2349,6 +2358,17 @@ func getEventActionFromPostFields(r *http.Request) (dataprovider.BaseEventAction
|
||||
return action, nil
|
||||
}
|
||||
|
||||
func getIDPLoginEventFromPostField(r *http.Request) int {
|
||||
switch r.Form.Get("idp_login_event") {
|
||||
case "1":
|
||||
return 1
|
||||
case "2":
|
||||
return 2
|
||||
default:
|
||||
return 0
|
||||
}
|
||||
}
|
||||
|
||||
func getEventRuleConditionsFromPostFields(r *http.Request) (dataprovider.EventConditions, error) {
|
||||
var schedules []dataprovider.Schedule
|
||||
var names, groupNames, roleNames, fsPaths []dataprovider.ConditionPattern
|
||||
@@ -2424,6 +2444,7 @@ func getEventRuleConditionsFromPostFields(r *http.Request) (dataprovider.EventCo
|
||||
conditions := dataprovider.EventConditions{
|
||||
FsEvents: r.Form["fs_events"],
|
||||
ProviderEvents: r.Form["provider_events"],
|
||||
IDPLoginEvent: getIDPLoginEventFromPostField(r),
|
||||
Schedules: schedules,
|
||||
Options: dataprovider.ConditionOptions{
|
||||
Names: names,
|
||||
|
||||
Reference in New Issue
Block a user