package codeine.jsons.global; import java.util.List; import javax.inject.Inject; import codeine.jsons.JsonStore; import codeine.jsons.auth.CodeineUser; import codeine.jsons.auth.IdentityConfJsonStore; import codeine.model.Constants; import codeine.permissions.PermissionsConfJson; import codeine.permissions.UserPermissions; import com.google.common.collect.Lists; public class UserPermissionsJsonStore extends JsonStore<PermissionsConfJson>{ @Inject private IdentityConfJsonStore identityConfJsonStore; public UserPermissionsJsonStore() { super(Constants.getPermissionsConfPath(), PermissionsConfJson.class); } @Override public PermissionsConfJson get() { List<UserPermissions> permissions = Lists.newArrayList(); for (UserPermissions p : super.get().permissions()) { if (p.user() == null) { CodeineUser codeineUser = identityConfJsonStore.get().getOrNull(p.usernameString()); if (null == codeineUser) { codeineUser = CodeineUser.createNewUser(p.usernameString(), "non-exist-user"); } p.initUser(codeineUser); } permissions.add(p); } return new PermissionsConfJson(permissions); } }