summaryrefslogtreecommitdiffstats
path: root/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java
diff options
context:
space:
mode:
Diffstat (limited to 'EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java')
-rw-r--r--EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java14
1 files changed, 14 insertions, 0 deletions
diff --git a/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java b/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java
index 38663ba7d..83e170137 100644
--- a/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java
+++ b/EssentialsGroupManager/src/org/anjocaido/groupmanager/data/User.java
@@ -53,6 +53,10 @@ public class User extends DataUnit implements Cloneable {
User clone = new User(getDataSource(), this.getLastName());
clone.group = this.group;
+
+ // Clone all subgroups.
+ clone.subGroups.addAll(this.subGroupListStringCopy());
+
for (String perm : this.getPermissionList()) {
clone.addPermission(perm);
}
@@ -72,15 +76,22 @@ public class User extends DataUnit implements Cloneable {
if (dataSource.isUserDeclared(this.getUUID())) {
return null;
}
+
User clone = dataSource.createUser(this.getUUID());
+
if (dataSource.getGroup(group) == null) {
clone.setGroup(dataSource.getDefaultGroup());
} else {
clone.setGroup(dataSource.getGroup(this.getGroupName()));
}
+
+ // Clone all subgroups.
+ clone.subGroups.addAll(this.subGroupListStringCopy());
+
for (String perm : this.getPermissionList()) {
clone.addPermission(perm);
}
+
clone.variables = this.variables.clone(this);
clone.flagAsChanged();
return clone;
@@ -95,6 +106,9 @@ public class User extends DataUnit implements Cloneable {
// Set the group silently.
clone.setGroup(this.getDataSource().getGroup(this.getGroupName()), false);
+ // Clone all subgroups.
+ clone.subGroups.addAll(this.subGroupListStringCopy());
+
for (String perm : this.getPermissionList()) {
clone.addPermission(perm);
}