@@ -14,7 +14,7 @@ import (
14
14
15
15
type SqlLogic struct {}
16
16
17
- // 同步sql的用户信息到ldap
17
+ // SyncSqlUsers 同步sql的用户信息到ldap
18
18
func (d * SqlLogic ) SyncSqlUsers (c * gin.Context , req interface {}) (data interface {}, rspError interface {}) {
19
19
r , ok := req .(* request.SyncSqlUserReq )
20
20
if ! ok {
@@ -50,8 +50,7 @@ func (d *SqlLogic) SyncSqlUsers(c *gin.Context, req interface{}) (data interface
50
50
return nil , tools .NewMySqlError (fmt .Errorf ("向Ldap添加用户到分组关系失败:" + err .Error ()))
51
51
}
52
52
}
53
- user .SyncState = 1
54
- err = isql .User .Update (& user )
53
+ err = isql .User .ChangeSyncState (int (user .ID ), 1 )
55
54
if err != nil {
56
55
return nil , tools .NewLdapError (fmt .Errorf ("用户同步完毕之后更新状态失败:" + err .Error ()))
57
56
}
@@ -60,7 +59,7 @@ func (d *SqlLogic) SyncSqlUsers(c *gin.Context, req interface{}) (data interface
60
59
return nil , nil
61
60
}
62
61
63
- // 同步sql中的分组信息到ldap
62
+ // SyncSqlGroups 同步sql中的分组信息到ldap
64
63
func (d * SqlLogic ) SyncSqlGroups (c * gin.Context , req interface {}) (data interface {}, rspError interface {}) {
65
64
r , ok := req .(* request.SyncSqlGrooupsReq )
66
65
if ! ok {
@@ -95,8 +94,7 @@ func (d *SqlLogic) SyncSqlGroups(c *gin.Context, req interface{}) (data interfac
95
94
}
96
95
}
97
96
}
98
- group .SyncState = 1
99
- err = isql .Group .Update (group )
97
+ err = isql .Group .ChangeSyncState (int (group .ID ), 1 )
100
98
if err != nil {
101
99
return nil , tools .NewLdapError (fmt .Errorf ("分组同步完毕之后更新状态失败:" + err .Error ()))
102
100
}
@@ -105,7 +103,7 @@ func (d *SqlLogic) SyncSqlGroups(c *gin.Context, req interface{}) (data interfac
105
103
return nil , nil
106
104
}
107
105
108
- // 检索未同步到ldap中的分组
106
+ // SearchGroupDiff 检索未同步到ldap中的分组
109
107
func SearchGroupDiff () (err error ) {
110
108
// 获取sql中的数据
111
109
var sqlGroupList []* model.Group
@@ -125,13 +123,12 @@ func SearchGroupDiff() (err error) {
125
123
if group .GroupDN == config .Conf .Ldap .BaseDN {
126
124
continue
127
125
}
128
- group .SyncState = 2
129
- err = isql .Group .Update (group )
126
+ err = isql .Group .ChangeSyncState (int (group .ID ), 2 )
130
127
}
131
128
return
132
129
}
133
130
134
- // 检索未同步到ldap中的用户
131
+ // SearchUserDiff 检索未同步到ldap中的用户
135
132
func SearchUserDiff () (err error ) {
136
133
// 获取sql中的数据
137
134
var sqlUserList []* model.User
@@ -148,34 +145,39 @@ func SearchUserDiff() (err error) {
148
145
// 比对两个系统中的数据
149
146
users := diffUser (sqlUserList , ldapUserList )
150
147
for _ , user := range users {
151
- user .SyncState = 2
152
- err = isql .User .Update (user )
148
+ if user .UserDN == config .Conf .Ldap .AdminDN {
149
+ continue
150
+ }
151
+ err = isql .User .ChangeSyncState (int (user .ID ), 2 )
153
152
}
154
153
return
155
154
}
156
155
157
- func diffGroup (a , b []* model.Group ) (rst []* model.Group ) {
156
+ // diffGroup 比较出sql中有但ldap中没有的group列表
157
+ func diffGroup (sqlGroup , ldapGroup []* model.Group ) (rst []* model.Group ) {
158
158
var tmp = make (map [string ]struct {}, 0 )
159
159
160
- for _ , v := range b {
160
+ for _ , v := range ldapGroup {
161
161
tmp [v .GroupDN ] = struct {}{}
162
162
}
163
163
164
- for _ , v := range a {
164
+ for _ , v := range sqlGroup {
165
165
if _ , ok := tmp [v .GroupDN ]; ! ok {
166
166
rst = append (rst , v )
167
167
}
168
168
}
169
169
return
170
170
}
171
- func diffUser (a , b []* model.User ) (rst []* model.User ) {
172
- var tmp = make (map [string ]struct {}, len (a ))
173
171
174
- for _ , v := range b {
172
+ // diffUser 比较出sql中有但ldap中没有的user列表
173
+ func diffUser (sqlUser , ldapUser []* model.User ) (rst []* model.User ) {
174
+ var tmp = make (map [string ]struct {}, len (sqlUser ))
175
+
176
+ for _ , v := range ldapUser {
175
177
tmp [v .UserDN ] = struct {}{}
176
178
}
177
179
178
- for _ , v := range a {
180
+ for _ , v := range sqlUser {
179
181
if _ , ok := tmp [v .UserDN ]; ! ok {
180
182
rst = append (rst , v )
181
183
}
0 commit comments