diff options
Diffstat (limited to 'web/service/inbound.go')
| -rw-r--r-- | web/service/inbound.go | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/web/service/inbound.go b/web/service/inbound.go index 448e6832..93414801 100644 --- a/web/service/inbound.go +++ b/web/service/inbound.go @@ -1569,6 +1569,23 @@ func (s *InboundService) ToggleClientEnableByEmail(clientEmail string) (bool, bo return !clientOldEnabled, needRestart, nil } + +// SetClientEnableByEmail sets client enable state to desired value; returns (changed, needRestart, error) +func (s *InboundService) SetClientEnableByEmail(clientEmail string, enable bool) (bool, bool, error) { + current, err := s.checkIsEnabledByEmail(clientEmail) + if err != nil { + return false, false, err + } + if current == enable { + return false, false, nil + } + newEnabled, needRestart, err := s.ToggleClientEnableByEmail(clientEmail) + if err != nil { + return false, needRestart, err + } + return newEnabled == enable, needRestart, nil +} + func (s *InboundService) ResetClientIpLimitByEmail(clientEmail string, count int) (bool, error) { _, inbound, err := s.GetClientInboundByEmail(clientEmail) if err != nil { |
