init
This commit is contained in:
113
app/service/AuthService.go
Normal file
113
app/service/AuthService.go
Normal file
@ -0,0 +1,113 @@
|
||||
package service
|
||||
|
||||
import (
|
||||
"labix.org/v2/mgo/bson"
|
||||
// "github.com/leanote/leanote/app/db"
|
||||
"github.com/leanote/leanote/app/info"
|
||||
. "github.com/leanote/leanote/app/lea"
|
||||
"fmt"
|
||||
)
|
||||
|
||||
// 登录与权限
|
||||
|
||||
type AuthService struct {
|
||||
}
|
||||
|
||||
// pwd已md5了
|
||||
func (this *AuthService) Login(emailOrUsername, pwd string) info.User {
|
||||
return userService.LoginGetUserInfo(emailOrUsername, Md5(pwd))
|
||||
}
|
||||
|
||||
// 注册
|
||||
/*
|
||||
注册 leanote@leanote.com userId = "5368c1aa99c37b029d000001"
|
||||
添加 在博客上添加一篇欢迎note, note1 5368c1b919807a6f95000000
|
||||
|
||||
将nk1(只读), nk2(可写) 分享给该用户
|
||||
将note1 复制到用户的生活nk上
|
||||
*/
|
||||
// 1. 添加用户
|
||||
// 2. 将leanote共享给我
|
||||
// [ok]
|
||||
func (this *AuthService) Register(email, pwd string) (bool, string) {
|
||||
// 用户是否已存在
|
||||
if userService.IsExistsUser(email) {
|
||||
return false, email + " 已被注册"
|
||||
}
|
||||
user := info.User{UserId: bson.NewObjectId(), Email: email, Username: email, Pwd: Md5(pwd)}
|
||||
return this.register(user)
|
||||
}
|
||||
|
||||
func (this *AuthService) register(user info.User) (bool, string) {
|
||||
if userService.AddUser(user) {
|
||||
// 添加笔记本, 生活, 学习, 工作
|
||||
notebook := info.Notebook{
|
||||
Seq: -1,
|
||||
UserId: user.UserId}
|
||||
title2Id := map[string]bson.ObjectId{"life": bson.NewObjectId(), "study": bson.NewObjectId(), "work": bson.NewObjectId()}
|
||||
for title, objectId := range title2Id {
|
||||
notebook.Title = title
|
||||
notebook.NotebookId = objectId
|
||||
notebook.UserId = user.UserId
|
||||
notebookService.AddNotebook(notebook);
|
||||
}
|
||||
|
||||
email := user.Email
|
||||
// 添加leanote -> 该用户的共享
|
||||
leanoteUserId := "5368c1aa99c37b029d000001";
|
||||
nk1 := "5368c1aa99c37b029d000002" // leanote
|
||||
welcomeNoteId := "5368c1b919807a6f95000000" // 欢迎来到leanote
|
||||
|
||||
shareService.AddShareNotebook(nk1, 0, leanoteUserId, email);
|
||||
shareService.AddShareNote(welcomeNoteId, 0, leanoteUserId, email);
|
||||
|
||||
// 将welcome copy给我
|
||||
note := noteService.CopySharedNote(welcomeNoteId, title2Id["life"].Hex(), leanoteUserId, user.UserId.Hex());
|
||||
|
||||
// 公开为博客
|
||||
noteUpdate := bson.M{"IsBlog": true}
|
||||
noteService.UpdateNote(user.UserId.Hex(), user.UserId.Hex(), note.NoteId.Hex(), noteUpdate)
|
||||
|
||||
//---------------
|
||||
// 添加一条userBlog
|
||||
blogService.UpdateUserBlog(info.UserBlog{UserId: user.UserId,
|
||||
Title: user.Username + " 's Blog",
|
||||
SubTitle: "love leanote!",
|
||||
AboutMe: "Hello, I am (^_^)",
|
||||
})
|
||||
}
|
||||
|
||||
return true, ""
|
||||
}
|
||||
|
||||
//--------------
|
||||
// 第三方注册
|
||||
|
||||
// 第三方得到用户名, 可能需要多次判断
|
||||
func (this *AuthService) getUsername(thirdType, thirdUsername string) (username string) {
|
||||
username = thirdType + "-" + thirdUsername
|
||||
i := 1
|
||||
for ;; {
|
||||
if !userService.IsExistsUserByUsername(username) {
|
||||
return
|
||||
}
|
||||
username = fmt.Sprintf("%v%v", username, i)
|
||||
}
|
||||
}
|
||||
|
||||
func (this *AuthService) ThirdRegister(thirdType, thirdUserId, thirdUsername string) (exists bool, userInfo info.User) {
|
||||
userInfo = userService.GetUserInfoByThirdUserId(thirdUserId)
|
||||
if userInfo.UserId != "" {
|
||||
exists = true
|
||||
return
|
||||
}
|
||||
|
||||
username := this.getUsername(thirdType, thirdUsername)
|
||||
userInfo = info.User{UserId: bson.NewObjectId(),
|
||||
Username: username,
|
||||
ThirdUserId: thirdUserId,
|
||||
ThirdUsername: thirdUsername,
|
||||
}
|
||||
_, _ = this.register(userInfo)
|
||||
return
|
||||
}
|
Reference in New Issue
Block a user