Skip to content

Commit

Permalink
Update Email Validation
Browse files Browse the repository at this point in the history
  • Loading branch information
MHSanaei committed Sep 5, 2024
1 parent 2001d96 commit b4baf35
Showing 1 changed file with 31 additions and 0 deletions.
31 changes: 31 additions & 0 deletions web/service/inbound.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@ package service

import (
"encoding/json"
"errors"
"fmt"
"regexp"
"strconv"
"strings"
"time"
Expand Down Expand Up @@ -411,6 +413,12 @@ func (s *InboundService) AddInboundClient(data *model.Inbound) (bool, error) {
return false, err
}

email := clients[0].Email
valid, err := validateEmail(email)
if !valid {
return false, err
}

var settings map[string]interface{}
err = json.Unmarshal([]byte(data.Settings), &settings)
if err != nil {
Expand Down Expand Up @@ -601,6 +609,12 @@ func (s *InboundService) UpdateInboundClient(data *model.Inbound, clientId strin
return false, err
}

email := clients[0].Email
valid, err := validateEmail(email)
if !valid {
return false, err
}

var settings map[string]interface{}
err = json.Unmarshal([]byte(data.Settings), &settings)
if err != nil {
Expand Down Expand Up @@ -2007,3 +2021,20 @@ func (s *InboundService) MigrateDB() {
func (s *InboundService) GetOnlineClients() []string {
return p.GetOnlineClients()
}

func validateEmail(email string) (bool, error) {
if strings.Contains(email, " ") {
return false, errors.New("email contains spaces, please remove them")
}

if email != strings.ToLower(email) {
return false, errors.New("email contains uppercase letters, please convert to lowercase")
}

emailPattern := `^[a-z0-9._-]+$`
if !regexp.MustCompile(emailPattern).MatchString(email) {
return false, errors.New("email contains invalid characters, please use only lowercase letters, digits, dots, dashes, and underscores")
}

return true, nil
}

13 comments on commit b4baf35

@saeed-54996
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

توی رجکسی که نوشته شده ، @ گزاشته نشده!! (بخاطر همین حتی ایمیل هم ساپورت نمیکنه!) بهتره که کلا توی این قسمت هیچ validate از لحاظ فاصله و @ و سایر کاراکتر ها انجام نشه چون خیلی از بچه ها کلا توی قسمت ایمیل دارن نام کاربر رو میزارن و قطعا فاصله و .. توش استفاده کردن، بخاطر همین مشکل میخورن

@nima1024m
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I recommend changing Email to Username and only allows characters and digits.
The current update which denies uppercase letters is really annoying, specially for panels with many uppercase characters in email field.

@MHSanaei
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ایمیل در اصل یوزرنیم هست و هیچ ربطی به ایمیل نداره صرفا اسمش ایمیل هست

@saeed-54996
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ما همیشه بین یوزرنیم فاصله میزاشتیم، الان همچین ریجکسی واقعا آزاردهندست!
میشه به همون شکل قبلی برگردونید؟ محدودیتی توی ورود کاراکتر نداشته باشه
مثلا برای اسم بشه اینجوری گزاشت : mehdi @ hasan خیلیا مرسومه که توی فیلد مینویسن کاربرشون دقیق کی هست و از طرف کی اومده و این ریجکسه اذیتشون میکنه

@MHSanaei
Copy link
Owner Author

@MHSanaei MHSanaei commented on b4baf35 Sep 10, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

خیر
میتونید به این شکل بنویسید
mehdi_hasan

@FRIBANGI
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

سلام وقتتون بخیر باشه و بابت این پروژه واقعا خسته نباشید میگم بهتون
توی این آپدیت جدید نه من بلکه همه دوستان به این مشکل خوردیم حرف شما کاملا متین هست ولی سر آیدی های قبلی به مشکل خوردیم اینجوری مدل قبلی خیلی خوب بود الان آپدیت کاربر که میخوایم بزنیم یا اینکه میخوایم حجم اضافه کنیم باید حروف کوچیک بنویسیم و فاصله ای که از قبل وجود داشته پاک بشه لطفا اگر براتون امکانش هست اون حالت قبلی خیلی با کیفیت تر بود یعنی تمام دوستانی که از این پروژه دارن استفاده میکنن همه به مشکل خوردن

@mohammadsh35
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

سلام واقعا دمتون گرم انقدر زحمت میکشید ولی با این اپدیت منم مشکل دارم میشه لطفا به حالت قبل برگردونید؟

@farhap54
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

سلام
مهندس جان تو ابدیت یکم مشکل داره
تمدید یوزر نمیشه ارور حدف ایمیل میده
میشه ب حالت قبل برگردانید !

@sina8125
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

سلام مهندس خداقوت
این محدودیت علاوه بر اینکه روی پنل مشکلات زیادی ایجاد میکنه و اطلاعات قبلی رو دچار مشکل میکنه، توی api ها هم به مشکل برمیخوره
من خودم یه پروژه دارم روی api شما و الان وقتی میخوای کلاینت update کنم به همین ارور برمیخورم و اصلاحش خیلی سخته تو کل پروژه ایمیل ها با @ و حروف بزرگ و کوچک استفاده شده
در صورت امکان لطفا تجدید نظر کنید توی این آپدیت
تشکر

@neovpn
Copy link

@neovpn neovpn commented on b4baf35 Sep 11, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi there,
Thank you for the great work! Could you please revert this function to its previous state?

@saeed-54996
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

بنظرم این تغیر با وجود مخالفت های زیادی که داره ، بهتره به صورت یه آپشن توی تنظیمات پنل در بیاد ، واقعا روی اعصابه

@Hamidramzanpour
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

سلام لطفاً مشکل ایمیلو برطرف کنید کانفیگهایی که ساخته شده با حروف بزرگ...نام کاربر با حروف بزرگ یا همون ایمیل ...این ارور میده و کانفیگو نمیشه هیچ کاری کرد
Something went wrong! Failed, emaill contains uppercase letters, please convert to lowercase

@Hamidramzanpour
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

از سازنده پنل سنایی تقاضا دارم زودتر این مشکلو برطرف کنه... وقتی نام کاربری یا همون ایمیل با حروف بزرگ تو ورژن های قبل نوشتیم و الان پنل آپدیت کردیم الان کانفیگو نمیشه غیر فعال کرد یا تغییر داد میگه نام ایمیل با حروف بزرگ نوشته شده لطفا مشکل یا باگو برطرف کنید🙏🙏🙏🙏
Something went wrong! Failed, emaill contains uppercase letters, please convert to lowercase

Please sign in to comment.