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

View differences:

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