summaryrefslogtreecommitdiffstats
path: root/models/user.go
diff options
context:
space:
mode:
authorUnknown <joe2010xtmf@163.com>2014-03-20 16:04:56 -0400
committerUnknown <joe2010xtmf@163.com>2014-03-20 16:04:56 -0400
commit06631ab91f5d84b48d6f71ac8eaf4df740ba0282 (patch)
tree8bfcccc57550c016b90a73fc57cc24942d508096 /models/user.go
parent686348974b1a1f6f11cab5244df2362f99e0a124 (diff)
downloadgitea-06631ab91f5d84b48d6f71ac8eaf4df740ba0282.tar.gz
gitea-06631ab91f5d84b48d6f71ac8eaf4df740ba0282.zip
Basic admin data table, models changes
Diffstat (limited to 'models/user.go')
-rw-r--r--models/user.go97
1 files changed, 48 insertions, 49 deletions
diff --git a/models/user.go b/models/user.go
index 990e1954a5..3c11091285 100644
--- a/models/user.go
+++ b/models/user.go
@@ -33,6 +33,14 @@ const (
LT_LDAP
)
+var (
+ ErrUserOwnRepos = errors.New("User still have ownership of repositories")
+ ErrUserAlreadyExist = errors.New("User already exist")
+ ErrUserNotExist = errors.New("User does not exist")
+ ErrEmailAlreadyUsed = errors.New("E-mail already used")
+ ErrUserNameIllegal = errors.New("User name contains illegal characters")
+)
+
// User represents the object of individual and member of organization.
type User struct {
Id int64
@@ -67,20 +75,28 @@ func (user *User) AvatarLink() string {
return "http://1.gravatar.com/avatar/" + user.Avatar
}
-type Follow struct {
- Id int64
- UserId int64 `xorm:"unique(s)"`
- FollowId int64 `xorm:"unique(s)"`
- Created time.Time `xorm:"created"`
+// NewGitSig generates and returns the signature of given user.
+func (user *User) NewGitSig() *git.Signature {
+ return &git.Signature{
+ Name: user.Name,
+ Email: user.Email,
+ When: time.Now(),
+ }
}
-var (
- ErrUserOwnRepos = errors.New("User still have ownership of repositories")
- ErrUserAlreadyExist = errors.New("User already exist")
- ErrUserNotExist = errors.New("User does not exist")
- ErrEmailAlreadyUsed = errors.New("E-mail already used")
- ErrUserNameIllegal = errors.New("User name contains illegal characters")
-)
+// EncodePasswd encodes password to safe format.
+func (user *User) EncodePasswd() error {
+ newPasswd, err := scrypt.Key([]byte(user.Passwd), []byte(base.SecretKey), 16384, 8, 1, 64)
+ user.Passwd = fmt.Sprintf("%x", newPasswd)
+ return err
+}
+
+// Member represents user is member of organization.
+type Member struct {
+ Id int64
+ OrgId int64 `xorm:"unique(member) index"`
+ UserId int64 `xorm:"unique(member)"`
+}
// IsUserExist checks if given user name exist,
// the user name should be noncased unique.
@@ -93,15 +109,6 @@ func IsEmailUsed(email string) (bool, error) {
return orm.Get(&User{Email: email})
}
-// NewGitSig generates and returns the signature of given user.
-func (user *User) NewGitSig() *git.Signature {
- return &git.Signature{
- Name: user.Name,
- Email: user.Email,
- When: time.Now(),
- }
-}
-
// return a user salt token
func GetUserSalt() string {
return base.GetRandomString(10)
@@ -151,6 +158,13 @@ func RegisterUser(user *User) (*User, error) {
return user, err
}
+// GetUsers returns given number of user objects with offset.
+func GetUsers(num, offset int) ([]User, error) {
+ users := make([]User, 0, num)
+ err := orm.Limit(num, offset).Asc("id").Find(&users)
+ return users, err
+}
+
// get user by erify code
func getVerifyUser(code string) (user *User) {
if len(code) <= base.TimeLimitCodeLength {
@@ -229,24 +243,14 @@ func DeleteUser(user *User) error {
return err
}
-// EncodePasswd encodes password to safe format.
-func (user *User) EncodePasswd() error {
- newPasswd, err := scrypt.Key([]byte(user.Passwd), []byte(base.SecretKey), 16384, 8, 1, 64)
- user.Passwd = fmt.Sprintf("%x", newPasswd)
- return err
-}
-
// UserPath returns the path absolute path of user repositories.
func UserPath(userName string) string {
- return filepath.Join(RepoRootPath, strings.ToLower(userName))
+ return filepath.Join(base.RepoRootPath, strings.ToLower(userName))
}
func GetUserByKeyId(keyId int64) (*User, error) {
user := new(User)
- rawSql := "SELECT a.* FROM user AS a, public_key AS b WHERE a.id = b.owner_id AND b.id=?"
- if base.Cfg.MustValue("database", "DB_TYPE") == "postgres" {
- rawSql = "SELECT a.* FROM \"user\" AS a, public_key AS b WHERE a.id = b.owner_id AND b.id=?"
- }
+ rawSql := "SELECT a.* FROM `user` AS a, public_key AS b WHERE a.id = b.owner_id AND b.id=?"
has, err := orm.Sql(rawSql, keyId).Get(user)
if err != nil {
return nil, err
@@ -303,6 +307,13 @@ func LoginUserPlain(name, passwd string) (*User, error) {
return &user, err
}
+// Follow is connection request for receiving user notifycation.
+type Follow struct {
+ Id int64
+ UserId int64 `xorm:"unique(follow)"`
+ FollowId int64 `xorm:"unique(follow)"`
+}
+
// FollowUser marks someone be another's follower.
func FollowUser(userId int64, followId int64) (err error) {
session := orm.NewSession()
@@ -314,19 +325,13 @@ func FollowUser(userId int64, followId int64) (err error) {
return err
}
- rawSql := "UPDATE user SET num_followers = num_followers + 1 WHERE id = ?"
- if base.Cfg.MustValue("database", "DB_TYPE") == "postgres" {
- rawSql = "UPDATE \"user\" SET num_followers = num_followers + 1 WHERE id = ?"
- }
+ rawSql := "UPDATE `user` SET num_followers = num_followers + 1 WHERE id = ?"
if _, err = session.Exec(rawSql, followId); err != nil {
session.Rollback()
return err
}
- rawSql = "UPDATE user SET num_followings = num_followings + 1 WHERE id = ?"
- if base.Cfg.MustValue("database", "DB_TYPE") == "postgres" {
- rawSql = "UPDATE \"user\" SET num_followings = num_followings + 1 WHERE id = ?"
- }
+ rawSql = "UPDATE `user` SET num_followings = num_followings + 1 WHERE id = ?"
if _, err = session.Exec(rawSql, userId); err != nil {
session.Rollback()
return err
@@ -345,19 +350,13 @@ func UnFollowUser(userId int64, unFollowId int64) (err error) {
return err
}
- rawSql := "UPDATE user SET num_followers = num_followers - 1 WHERE id = ?"
- if base.Cfg.MustValue("database", "DB_TYPE") == "postgres" {
- rawSql = "UPDATE \"user\" SET num_followers = num_followers - 1 WHERE id = ?"
- }
+ rawSql := "UPDATE `user` SET num_followers = num_followers - 1 WHERE id = ?"
if _, err = session.Exec(rawSql, unFollowId); err != nil {
session.Rollback()
return err
}
- rawSql = "UPDATE user SET num_followings = num_followings - 1 WHERE id = ?"
- if base.Cfg.MustValue("database", "DB_TYPE") == "postgres" {
- rawSql = "UPDATE \"user\" SET num_followings = num_followings - 1 WHERE id = ?"
- }
+ rawSql = "UPDATE `user` SET num_followings = num_followings - 1 WHERE id = ?"
if _, err = session.Exec(rawSql, userId); err != nil {
session.Rollback()
return err