mirror of
				https://github.com/bjdgyc/anylink.git
				synced 2025-11-04 19:16:22 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			91 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			91 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package dbdata
 | 
						||
 | 
						||
import (
 | 
						||
	"time"
 | 
						||
 | 
						||
	"github.com/asdine/storm/v3"
 | 
						||
	"github.com/asdine/storm/v3/codec/json"
 | 
						||
	"github.com/bjdgyc/anylink/base"
 | 
						||
	bolt "go.etcd.io/bbolt"
 | 
						||
)
 | 
						||
 | 
						||
var (
 | 
						||
	sdb *storm.DB
 | 
						||
)
 | 
						||
 | 
						||
func initDb() {
 | 
						||
	var err error
 | 
						||
	sdb, err = storm.Open(base.Cfg.DbFile, storm.Codec(json.Codec),
 | 
						||
		storm.BoltOptions(0600, &bolt.Options{Timeout: 10 * time.Second}))
 | 
						||
	if err != nil {
 | 
						||
		base.Fatal(err)
 | 
						||
	}
 | 
						||
 | 
						||
	// 初始化数据库
 | 
						||
	err = sdb.Init(&User{})
 | 
						||
	if err != nil {
 | 
						||
		base.Fatal(err)
 | 
						||
	}
 | 
						||
 | 
						||
	// fmt.Println("s1")
 | 
						||
}
 | 
						||
 | 
						||
func initData() {
 | 
						||
	var (
 | 
						||
		err     error
 | 
						||
		install bool
 | 
						||
	)
 | 
						||
 | 
						||
	// 判断是否初次使用
 | 
						||
	err = Get(SettingBucket, Installed, &install)
 | 
						||
	if err == nil && install {
 | 
						||
		// 已经安装过
 | 
						||
		return
 | 
						||
	}
 | 
						||
 | 
						||
	defer func() {
 | 
						||
		_ = Set(SettingBucket, Installed, true)
 | 
						||
	}()
 | 
						||
 | 
						||
	smtp := &SettingSmtp{
 | 
						||
		Host: "127.0.0.1",
 | 
						||
		Port: 25,
 | 
						||
		From: "vpn@xx.com",
 | 
						||
	}
 | 
						||
	_ = SettingSet(smtp)
 | 
						||
 | 
						||
	other := &SettingOther{
 | 
						||
		LinkAddr:    "vpn.xx.com",
 | 
						||
		Banner:      "您已接入公司网络,请按照公司规定使用。\n请勿进行非工作下载及视频行为!",
 | 
						||
		AccountMail: accountMail,
 | 
						||
	}
 | 
						||
	_ = SettingSet(other)
 | 
						||
 | 
						||
}
 | 
						||
 | 
						||
func CheckErrNotFound(err error) bool {
 | 
						||
	return err == storm.ErrNotFound
 | 
						||
}
 | 
						||
 | 
						||
const accountMail = `<p>您好:</p>
 | 
						||
<p>  您的{{.Issuer}}账号已经审核开通。</p>
 | 
						||
<p>
 | 
						||
    登陆地址: <b>{{.LinkAddr}}</b> <br/>
 | 
						||
    用户组: <b>{{.Group}}</b> <br/>
 | 
						||
    用户名: <b>{{.Username}}</b> <br/>
 | 
						||
    用户PIN码: <b>{{.PinCode}}</b> <br/>
 | 
						||
    用户动态码(3天后失效):<br/>
 | 
						||
    <img src="{{.OtpImg}}"/>
 | 
						||
</p>
 | 
						||
<div>
 | 
						||
    使用说明:
 | 
						||
    <ul>
 | 
						||
        <li>请使用OTP软件扫描动态码二维码</li>
 | 
						||
        <li>然后使用anyconnect客户端进行登陆</li>
 | 
						||
        <li>登陆密码为 【PIN码+动态码】</li>
 | 
						||
    </ul>
 | 
						||
</div>
 | 
						||
<p>
 | 
						||
    软件下载地址: https://{{.LinkAddr}}/files/info.txt
 | 
						||
</p>`
 |