introduce storagelimits
This commit is contained in:
parent
885ece0522
commit
8c98a8feb6
@ -103,8 +103,10 @@ public class PacModuleImpl extends AbstractModuleImpl {
|
||||
admin.setHomedir("/home/pacs/" + pac.getName());
|
||||
admin.setName(pac.getName());
|
||||
admin.setShell("/bin/bash");
|
||||
admin.setQuotaSoftlimit(0);
|
||||
admin.setQuotaHardlimit(0);
|
||||
admin.setQuotaSoftlimit(0);
|
||||
admin.setStorageHardlimit(0);
|
||||
admin.setStorageSoftlimit(0);
|
||||
admin.setPac(pac);
|
||||
long nUID = 20000;
|
||||
Long maxUid = (Long) em.createQuery("SELECT MAX(u.userId) FROM UnixUsers u").getSingleResult();
|
||||
|
@ -77,6 +77,14 @@ public class UnixUser extends AbstractEntity implements Serializable {
|
||||
@Column(name = "quota_hardlimit", columnDefinition = "integer")
|
||||
private Integer quotaHardlimit;
|
||||
|
||||
@AnnFieldIO(validation="[0-9]*", rw=ReadWriteAccess.READWRITE, overwriteName="storage_softlimit")
|
||||
@Column(name = "storage_softlimit", columnDefinition = "integer")
|
||||
private Integer storageSoftlimit;
|
||||
|
||||
@AnnFieldIO(validation="[0-9]*", rw=ReadWriteAccess.READWRITE, overwriteName="storage_hardlimit")
|
||||
@Column(name = "storage_hardlimit", columnDefinition = "integer")
|
||||
private Integer storageHardlimit;
|
||||
|
||||
public UnixUser() {
|
||||
}
|
||||
|
||||
@ -228,6 +236,22 @@ public class UnixUser extends AbstractEntity implements Serializable {
|
||||
return quotaHardlimit;
|
||||
}
|
||||
|
||||
public Integer getStorageSoftlimit() {
|
||||
return storageSoftlimit;
|
||||
}
|
||||
|
||||
public void setStorageSoftlimit(Integer storage) {
|
||||
this.storageSoftlimit = storage;
|
||||
}
|
||||
|
||||
public void setStorageHardlimit(Integer storageLimit) {
|
||||
this.storageHardlimit = storageLimit;
|
||||
}
|
||||
|
||||
public Integer getStorageHardlimit() {
|
||||
return storageHardlimit;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isNew() {
|
||||
return id == 0;
|
||||
|
@ -208,6 +208,22 @@ public class UnixUserModuleImpl extends AbstractModuleImpl {
|
||||
}
|
||||
}
|
||||
}
|
||||
if (detachedUnixUser.getStorageSoftlimit() != null) {
|
||||
if (hasFullAccessOnPacOf(attachedUnixUser)) {
|
||||
attachedUnixUser.setStorageSoftlimit(detachedUnixUser.getStorageSoftlimit());
|
||||
if (detachedUnixUser.getStorageHardlimit() != null) {
|
||||
attachedUnixUser.setStorageHardlimit(detachedUnixUser.getStorageHardlimit());
|
||||
}
|
||||
}
|
||||
else {
|
||||
Integer oldQuota = attachedUnixUser.getStorageSoftlimit();
|
||||
Integer newQuota = detachedUnixUser.getStorageSoftlimit();
|
||||
if (oldQuota != newQuota && !oldQuota.equals(newQuota)) {
|
||||
throw new AuthorisationException(loginUser, "update", detachedUnixUser, "storage");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return super.update(attachedUnixUser);
|
||||
}
|
||||
|
||||
|
@ -65,13 +65,21 @@ public class UnixUserRemote extends AbstractRemote {
|
||||
if (assertNotNull(homedir)) {
|
||||
user.setHomedir(homedir);
|
||||
}
|
||||
String quota = (String) map.get("quota_softlimit");
|
||||
if (assertNotNull(quota)) {
|
||||
user.setQuotaSoftlimit(Integer.parseInt(quota));
|
||||
String quotaSoftlimit = (String) map.get("quota_softlimit");
|
||||
if (assertNotNull(quotaSoftlimit)) {
|
||||
user.setQuotaSoftlimit(Integer.parseInt(quotaSoftlimit));
|
||||
}
|
||||
String quotaLimit = (String) map.get("quota_hardlimit");
|
||||
if (assertNotNull(quotaLimit)) {
|
||||
user.setQuotaHardlimit(Integer.parseInt(quotaLimit));
|
||||
String quotaHardlimit = (String) map.get("quota_hardlimit");
|
||||
if (assertNotNull(quotaHardlimit)) {
|
||||
user.setQuotaHardlimit(Integer.parseInt(quotaHardlimit));
|
||||
}
|
||||
String storageSoftlimit = (String) map.get("storage_softlimit");
|
||||
if (assertNotNull(storageSoftlimit)) {
|
||||
user.setStorageSoftlimit(Integer.parseInt(storageSoftlimit));
|
||||
}
|
||||
String storageHardlimit = (String) map.get("storage_hardlimit");
|
||||
if (assertNotNull(storageHardlimit)) {
|
||||
user.setStorageHardlimit(Integer.parseInt(storageHardlimit));
|
||||
}
|
||||
Boolean locked = (Boolean) map.get("locked");
|
||||
if (assertNotNull(locked)) {
|
||||
|
Loading…
Reference in New Issue
Block a user