blacklist.go 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. package access
  2. import (
  3. "strings"
  4. )
  5. /*
  6. Blacklist.go
  7. This script store the blacklist related functions
  8. */
  9. // Geo Blacklist
  10. func (s *AccessRule) AddCountryCodeToBlackList(countryCode string, comment string) {
  11. countryCode = strings.ToLower(countryCode)
  12. newBlacklistCountryCode := deepCopy(*s.BlackListContryCode)
  13. newBlacklistCountryCode[countryCode] = comment
  14. s.BlackListContryCode = &newBlacklistCountryCode
  15. s.SaveChanges()
  16. }
  17. func (s *AccessRule) RemoveCountryCodeFromBlackList(countryCode string) {
  18. countryCode = strings.ToLower(countryCode)
  19. newBlacklistCountryCode := deepCopy(*s.BlackListContryCode)
  20. delete(newBlacklistCountryCode, countryCode)
  21. s.BlackListContryCode = &newBlacklistCountryCode
  22. s.SaveChanges()
  23. }
  24. func (s *AccessRule) IsCountryCodeBlacklisted(countryCode string) bool {
  25. countryCode = strings.ToLower(countryCode)
  26. blacklistMap := *s.BlackListContryCode
  27. _, ok := blacklistMap[countryCode]
  28. return ok
  29. }
  30. func (s *AccessRule) GetAllBlacklistedCountryCode() []string {
  31. bannedCountryCodes := []string{}
  32. blacklistMap := *s.BlackListContryCode
  33. for cc, _ := range blacklistMap {
  34. bannedCountryCodes = append(bannedCountryCodes, cc)
  35. }
  36. return bannedCountryCodes
  37. }
  38. // IP Blacklsits
  39. func (s *AccessRule) AddIPToBlackList(ipAddr string, comment string) {
  40. newBlackListIP := deepCopy(*s.BlackListIP)
  41. newBlackListIP[ipAddr] = comment
  42. s.BlackListIP = &newBlackListIP
  43. s.SaveChanges()
  44. }
  45. func (s *AccessRule) RemoveIPFromBlackList(ipAddr string) {
  46. newBlackListIP := deepCopy(*s.BlackListIP)
  47. delete(newBlackListIP, ipAddr)
  48. s.BlackListIP = &newBlackListIP
  49. s.SaveChanges()
  50. }
  51. func (s *AccessRule) GetAllBlacklistedIp() []string {
  52. bannedIps := []string{}
  53. blacklistMap := *s.BlackListIP
  54. for ip, _ := range blacklistMap {
  55. bannedIps = append(bannedIps, ip)
  56. }
  57. return bannedIps
  58. }
  59. func (s *AccessRule) IsIPBlacklisted(ipAddr string) bool {
  60. IPBlacklist := *s.BlackListIP
  61. _, ok := IPBlacklist[ipAddr]
  62. return ok
  63. }