mirror of
https://github.com/casdoor/casdoor.git
synced 2025-08-10 07:17:47 +08:00
Compare commits
4 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
37d1a73c0c | ||
![]() |
727877cf54 | ||
![]() |
939b416717 | ||
![]() |
f115843fbb |
@@ -41,38 +41,7 @@ type VerificationRecord struct {
|
|||||||
IsUsed bool
|
IsUsed bool
|
||||||
}
|
}
|
||||||
|
|
||||||
func SendVerificationCodeToEmail(organization *Organization, user *User, provider *Provider, remoteAddr string, dest string) error {
|
func IsAllowSend(user *User, remoteAddr, recordType string) error {
|
||||||
if provider == nil {
|
|
||||||
return fmt.Errorf("please set an Email provider first")
|
|
||||||
}
|
|
||||||
|
|
||||||
sender := organization.DisplayName
|
|
||||||
title := provider.Title
|
|
||||||
code := getRandomCode(6)
|
|
||||||
// "You have requested a verification code at Casdoor. Here is your code: %s, please enter in 5 minutes."
|
|
||||||
content := fmt.Sprintf(provider.Content, code)
|
|
||||||
|
|
||||||
if err := SendEmail(provider, title, content, dest, sender); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
return AddToVerificationRecord(user, provider, remoteAddr, provider.Category, dest, code)
|
|
||||||
}
|
|
||||||
|
|
||||||
func SendVerificationCodeToPhone(organization *Organization, user *User, provider *Provider, remoteAddr string, dest string) error {
|
|
||||||
if provider == nil {
|
|
||||||
return errors.New("please set a SMS provider first")
|
|
||||||
}
|
|
||||||
|
|
||||||
code := getRandomCode(6)
|
|
||||||
if err := SendSms(provider, code, dest); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
return AddToVerificationRecord(user, provider, remoteAddr, provider.Category, dest, code)
|
|
||||||
}
|
|
||||||
|
|
||||||
func AddToVerificationRecord(user *User, provider *Provider, remoteAddr, recordType, dest, code string) error {
|
|
||||||
var record VerificationRecord
|
var record VerificationRecord
|
||||||
record.RemoteAddr = remoteAddr
|
record.RemoteAddr = remoteAddr
|
||||||
record.Type = recordType
|
record.Type = recordType
|
||||||
@@ -89,6 +58,63 @@ func AddToVerificationRecord(user *User, provider *Provider, remoteAddr, recordT
|
|||||||
return errors.New("you can only send one code in 60s")
|
return errors.New("you can only send one code in 60s")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func SendVerificationCodeToEmail(organization *Organization, user *User, provider *Provider, remoteAddr string, dest string) error {
|
||||||
|
if provider == nil {
|
||||||
|
return fmt.Errorf("please set an Email provider first")
|
||||||
|
}
|
||||||
|
|
||||||
|
sender := organization.DisplayName
|
||||||
|
title := provider.Title
|
||||||
|
code := getRandomCode(6)
|
||||||
|
// "You have requested a verification code at Casdoor. Here is your code: %s, please enter in 5 minutes."
|
||||||
|
content := fmt.Sprintf(provider.Content, code)
|
||||||
|
|
||||||
|
if err := IsAllowSend(user, remoteAddr, provider.Category); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := SendEmail(provider, title, content, dest, sender); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := AddToVerificationRecord(user, provider, remoteAddr, provider.Category, dest, code); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func SendVerificationCodeToPhone(organization *Organization, user *User, provider *Provider, remoteAddr string, dest string) error {
|
||||||
|
if provider == nil {
|
||||||
|
return errors.New("please set a SMS provider first")
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := IsAllowSend(user, remoteAddr, provider.Category); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
code := getRandomCode(6)
|
||||||
|
if err := SendSms(provider, code, dest); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := AddToVerificationRecord(user, provider, remoteAddr, provider.Category, dest, code); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func AddToVerificationRecord(user *User, provider *Provider, remoteAddr, recordType, dest, code string) error {
|
||||||
|
var record VerificationRecord
|
||||||
|
record.RemoteAddr = remoteAddr
|
||||||
|
record.Type = recordType
|
||||||
|
if user != nil {
|
||||||
|
record.User = user.GetId()
|
||||||
|
}
|
||||||
record.Owner = provider.Owner
|
record.Owner = provider.Owner
|
||||||
record.Name = util.GenerateId()
|
record.Name = util.GenerateId()
|
||||||
record.CreatedTime = util.GetCurrentTime()
|
record.CreatedTime = util.GetCurrentTime()
|
||||||
@@ -99,10 +125,10 @@ func AddToVerificationRecord(user *User, provider *Provider, remoteAddr, recordT
|
|||||||
|
|
||||||
record.Receiver = dest
|
record.Receiver = dest
|
||||||
record.Code = code
|
record.Code = code
|
||||||
record.Time = now
|
record.Time = time.Now().Unix()
|
||||||
record.IsUsed = false
|
record.IsUsed = false
|
||||||
|
|
||||||
_, err = adapter.Engine.Insert(record)
|
_, err := adapter.Engine.Insert(record)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@@ -29,7 +29,7 @@ class PermissionListPage extends BaseListPage {
|
|||||||
name: `permission_${randomName}`,
|
name: `permission_${randomName}`,
|
||||||
createdTime: moment().format(),
|
createdTime: moment().format(),
|
||||||
displayName: `New Permission - ${randomName}`,
|
displayName: `New Permission - ${randomName}`,
|
||||||
users: [this.props.account.name],
|
users: [`${this.props.account.owner}/${this.props.account.name}`],
|
||||||
roles: [],
|
roles: [],
|
||||||
domains: [],
|
domains: [],
|
||||||
resourceType: "Application",
|
resourceType: "Application",
|
||||||
|
@@ -54,7 +54,7 @@ export function oAuthParamsToQuery(oAuthParams) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// code
|
// code
|
||||||
return `?clientId=${oAuthParams.clientId}&responseType=${oAuthParams.responseType}&redirectUri=${oAuthParams.redirectUri}&scope=${oAuthParams.scope}&state=${oAuthParams.state}&nonce=${oAuthParams.nonce}&code_challenge_method=${oAuthParams.challengeMethod}&code_challenge=${oAuthParams.codeChallenge}`;
|
return `?clientId=${oAuthParams.clientId}&responseType=${oAuthParams.responseType}&redirectUri=${encodeURIComponent(oAuthParams.redirectUri)}&scope=${oAuthParams.scope}&state=${oAuthParams.state}&nonce=${oAuthParams.nonce}&code_challenge_method=${oAuthParams.challengeMethod}&code_challenge=${oAuthParams.codeChallenge}`;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getApplicationLogin(oAuthParams) {
|
export function getApplicationLogin(oAuthParams) {
|
||||||
|
@@ -118,7 +118,7 @@ function getSamlUrl(provider, location) {
|
|||||||
export function renderProviderLogo(provider, application, width, margin, size, location) {
|
export function renderProviderLogo(provider, application, width, margin, size, location) {
|
||||||
if (size === "small") {
|
if (size === "small") {
|
||||||
if (provider.category === "OAuth") {
|
if (provider.category === "OAuth") {
|
||||||
if (provider.type === "WeChat" && provider.clientId2 !== "" && provider.clientSecret2 !== "" && provider.content !== "" && provider.disableSsl === true) {
|
if (provider.type === "WeChat" && provider.clientId2 !== "" && provider.clientSecret2 !== "" && provider.content !== "" && provider.disableSsl === true && !navigator.userAgent.includes("MicroMessenger")) {
|
||||||
const info = async() => {
|
const info = async() => {
|
||||||
const t1 = setInterval(await getEvent, 1000, application, provider);
|
const t1 = setInterval(await getEvent, 1000, application, provider);
|
||||||
{Modal.info({
|
{Modal.info({
|
||||||
|
Reference in New Issue
Block a user