summaryrefslogtreecommitdiffstats
path: root/models
diff options
context:
space:
mode:
authorLunny Xiao <xiaolunwen@gmail.com>2014-05-03 10:48:14 +0800
committerLunny Xiao <xiaolunwen@gmail.com>2014-05-03 10:48:14 +0800
commit79ea34e70ebe989f1a5f8fbd71cfe3109c6f8a58 (patch)
tree066027c6a42b971030e0d8b41ff979bfaa1e25ae /models
parent8bab21d795a6af7c424e9f8f72d613863cf34a70 (diff)
downloadgitea-79ea34e70ebe989f1a5f8fbd71cfe3109c6f8a58.tar.gz
gitea-79ea34e70ebe989f1a5f8fbd71cfe3109c6f8a58.zip
ldap support
Diffstat (limited to 'models')
-rw-r--r--models/ldap.go2
-rw-r--r--models/login.go55
-rw-r--r--models/models.go2
3 files changed, 48 insertions, 11 deletions
diff --git a/models/ldap.go b/models/ldap.go
index cc9058765f..1da5b87540 100644
--- a/models/ldap.go
+++ b/models/ldap.go
@@ -30,7 +30,7 @@ func LoginUserLdap(name, passwd string) (*User, error) {
Email: mail}
_, err := RegisterUser(&user)
if err != nil {
- log.Debug("LDAP local user %s fond (%s) ", name, err)
+ log.Debug("LDAP local user %s found (%s) ", name, err)
}
// simulate local user login
localUser, err2 := GetUserByName(user.Name)
diff --git a/models/login.go b/models/login.go
index e8dbfc2725..6d9e54943f 100644
--- a/models/login.go
+++ b/models/login.go
@@ -1,9 +1,12 @@
package models
-import
+import (
+ "encoding/json"
+ "time"
-// Login types.
-"github.com/go-xorm/core"
+ "github.com/go-xorm/core"
+ "github.com/gogits/gogs/modules/auth/ldap"
+)
/*const (
LT_PLAIN = iota + 1
@@ -14,20 +17,54 @@ import
var _ core.Conversion = &LDAPConfig{}
type LDAPConfig struct {
+ ldap.Ldapsource
}
// implement
func (cfg *LDAPConfig) FromDB(bs []byte) error {
- return nil
+ return json.Unmarshal(bs, &cfg.Ldapsource)
}
func (cfg *LDAPConfig) ToDB() ([]byte, error) {
- return nil, nil
+ return json.Marshal(cfg.Ldapsource)
}
type LoginSource struct {
- Id int64
- Type int
- Name string
- Cfg LDAPConfig
+ Id int64
+ Type int
+ Name string
+ IsActived bool
+ Cfg core.Conversion `xorm:"TEXT"`
+ Created time.Time `xorm:"created"`
+ Updated time.Time `xorm:"updated"`
+}
+
+func GetAuths() ([]*LoginSource, error) {
+ var auths = make([]*LoginSource, 0)
+ err := orm.Find(&auths)
+ return auths, err
+}
+
+func AddLDAPSource(name string, cfg *LDAPConfig) error {
+ _, err := orm.Insert(&LoginSource{Type: LT_LDAP,
+ Name: name,
+ IsActived: true,
+ Cfg: cfg,
+ })
+ return err
+}
+
+func UpdateLDAPSource(id int64, name string, cfg *LDAPConfig) error {
+ _, err := orm.AllCols().Id(id).Update(&LoginSource{
+ Id: id,
+ Type: LT_LDAP,
+ Name: name,
+ Cfg: cfg,
+ })
+ return err
+}
+
+func DelLoginSource(id int64) error {
+ _, err := orm.Id(id).Delete(&LoginSource{})
+ return err
}
diff --git a/models/models.go b/models/models.go
index 8e8835ab51..3bce764963 100644
--- a/models/models.go
+++ b/models/models.go
@@ -34,7 +34,7 @@ var (
func init() {
tables = append(tables, new(User), new(PublicKey), new(Repository), new(Watch),
new(Action), new(Access), new(Issue), new(Comment), new(Oauth2), new(Follow),
- new(Mirror), new(Release))
+ new(Mirror), new(Release), new(LoginSource))
}
func LoadModelsConfig() {