diff --git a/dataprovider/admin.go b/dataprovider/admin.go index b685d520..5b8aca7a 100644 --- a/dataprovider/admin.go +++ b/dataprovider/admin.go @@ -220,6 +220,7 @@ func (a *Admin) validate() error { if a.Email != "" && !emailRegex.MatchString(a.Email) { return util.NewValidationError(fmt.Sprintf("email %#v is not valid", a.Email)) } + a.Filters.AllowList = util.RemoveDuplicates(a.Filters.AllowList) for _, IPMask := range a.Filters.AllowList { _, _, err := net.ParseCIDR(IPMask) if err != nil { diff --git a/dataprovider/share.go b/dataprovider/share.go index 9b07ba80..ec1d10b9 100644 --- a/dataprovider/share.go +++ b/dataprovider/share.go @@ -67,6 +67,14 @@ func (s *Share) GetScopeAsString() string { } } +// IsExpired returns true if the share is expired +func (s *Share) IsExpired() bool { + if s.ExpiresAt > 0 { + return s.ExpiresAt < util.GetTimeAsMsSinceEpoch(time.Now()) + } + return false +} + // GetInfoString returns share's info as string. func (s *Share) GetInfoString() string { var result strings.Builder @@ -220,6 +228,7 @@ func (s *Share) validate() error { if err := s.hashPassword(); err != nil { return err } + s.AllowFrom = util.RemoveDuplicates(s.AllowFrom) for _, IPMask := range s.AllowFrom { _, _, err := net.ParseCIDR(IPMask) if err != nil { diff --git a/templates/webadmin/admin.html b/templates/webadmin/admin.html index b704082f..6ce1b409 100644 --- a/templates/webadmin/admin.html +++ b/templates/webadmin/admin.html @@ -80,8 +80,8 @@
For example:
curl -F filenames=@file1.txt -F filenames=@file2.txt "share link"