Revision 3315 org.gvsig.vcsgis/trunk/org.gvsig.vcsgis/org.gvsig.vcsgis.lib/org.gvsig.vcsgis.lib.impl/src/main/java/org/gvsig/vcsgis/lib/workspace/tables/UsersTable.java
UsersTable.java | ||
---|---|---|
1 | 1 |
package org.gvsig.vcsgis.lib.workspace.tables; |
2 | 2 |
|
3 |
import java.security.MessageDigest; |
|
3 | 4 |
import java.util.List; |
4 | 5 |
import javax.json.JsonObject; |
6 |
import org.apache.commons.codec.binary.Hex; |
|
5 | 7 |
import org.gvsig.vcsgis.lib.VCSGisUser; |
6 | 8 |
import org.gvsig.fmap.dal.DALLocator; |
7 | 9 |
import org.gvsig.fmap.dal.DataManager; |
8 | 10 |
import org.gvsig.fmap.dal.feature.EditableFeatureType; |
9 | 11 |
import org.gvsig.fmap.dal.feature.Feature; |
12 |
import org.gvsig.fmap.dal.feature.FeatureSet.DisposableFeatureSetIterable; |
|
13 |
import org.gvsig.fmap.dal.feature.FeatureStore; |
|
10 | 14 |
import org.gvsig.fmap.dal.feature.FeatureType; |
11 | 15 |
import org.gvsig.json.JsonObjectBuilder; |
12 | 16 |
import org.gvsig.tools.dataTypes.DataTypes; |
17 |
import org.gvsig.tools.dispose.DisposeUtils; |
|
13 | 18 |
import org.gvsig.vcsgis.lib.VCSGisUserEditable; |
14 | 19 |
import org.gvsig.vcsgis.lib.VCSGisUserImpl; |
20 |
import static org.gvsig.vcsgis.lib.VCSGisUtils.updateMessageDigest; |
|
15 | 21 |
import org.gvsig.vcsgis.lib.workspace.VCSGisWorkspace; |
16 | 22 |
|
17 | 23 |
/** |
... | ... | |
125 | 131 |
} |
126 | 132 |
|
127 | 133 |
@Override |
134 |
public void copyFrom(VCSGisUser other) { |
|
135 |
VCSGisUserImpl.copyUser(other, this); |
|
136 |
} |
|
137 |
|
|
138 |
@Override |
|
128 | 139 |
public List<String> getRolesAsList() { |
129 | 140 |
if (this.roles_list == null) { |
130 | 141 |
this.roles_list = VCSGisUserImpl.getRolesAsList(this); |
... | ... | |
162 | 173 |
super(TABLE_NAME, featureType()); |
163 | 174 |
} |
164 | 175 |
|
176 |
public String getHashCode(VCSGisWorkspace workspace) { |
|
177 |
FeatureStore store = null; |
|
178 |
DisposableFeatureSetIterable changes = null; |
|
179 |
try { |
|
180 |
MessageDigest md = MessageDigest.getInstance("MD5"); |
|
181 |
store = workspace.getFeatureStore(TABLE_NAME); |
|
182 |
changes = store.getFeatureSet().iterable(); |
|
183 |
for (Feature change : changes) { |
|
184 |
updateMessageDigest(md, change, COD_USER); |
|
185 |
updateMessageDigest(md, change, USER_ID); |
|
186 |
// updateMessageDigest(md, change, USER_PASSWORD); |
|
187 |
updateMessageDigest(md, change, USER_ROLES); |
|
188 |
updateMessageDigest(md, change, USER_DESCRIPTION); |
|
189 |
} |
|
190 |
String hash = Hex.encodeHexString(md.digest()); |
|
191 |
return hash; |
|
192 |
} catch (Exception ex) { |
|
193 |
throw new RuntimeException("Can't retrieve hash of users.", ex); |
|
194 |
} finally { |
|
195 |
DisposeUtils.dispose(changes); |
|
196 |
DisposeUtils.dispose(store); |
|
197 |
} |
|
198 |
} |
|
165 | 199 |
} |
Also available in: Unified diff