GUACAMOLE-1479: Merge change to styling of disabled users/groups.

This commit is contained in:
Mike Jumper
2024-06-21 15:29:36 -07:00
committed by GitHub
45 changed files with 266 additions and 106 deletions

View File

@@ -37,6 +37,10 @@
<th>{{'MANAGE_USER.FIELD_HEADER_PASSWORD_AGAIN' | translate}}</th>
<td><input ng-model="passwordMatch" type="password"></td>
</tr>
<tr>
<th>{{'MANAGE_USER.FIELD_HEADER_USER_DISABLED' | translate}}</th>
<td><input ng-model="user.disabled" type="checkbox"></td>
</tr>
</table>
</div>

View File

@@ -28,6 +28,10 @@
<span ng-hide="canEditIdentifier()">{{userGroup.identifier}}</span>
</td>
</tr>
<tr>
<th>{{'MANAGE_USER_GROUP.FIELD_HEADER_USER_GROUP_DISABLED' | translate}}</th>
<td><input ng-model="userGroup.disabled" type="checkbox"></td>
</tr>
</table>
</div>

View File

@@ -45,6 +45,17 @@ angular.module('manage').factory('ManageableUser', [function defineManageableUse
* @type User
*/
this.user = template.user;
/**
* Return true if the underlying user account is disabled, otherwise
* return false.
*
* @returns
* True if the underlying user account is disabled, otherwise false.
*/
this.isDisabled = function isDisabled() {
return template.user.disabled;
};
};

View File

@@ -61,6 +61,13 @@ angular.module('rest').factory('User', [function defineUser() {
* @type Number
*/
this.lastActive = template.lastActive;
/**
* True if this user account is disabled, otherwise false.
*
* @type boolean
*/
this.disabled = template.disabled;
/**
* Arbitrary name/value pairs which further describe this user. The

View File

@@ -42,6 +42,13 @@ angular.module('rest').factory('UserGroup', [function defineUserGroup() {
* @type String
*/
this.identifier = template.identifier;
/**
* True if this user group is disabled, otherwise false.
*
* @type boolean
*/
this.disabled = template.disabled;
/**
* Arbitrary name/value pairs which further describe this user group.

View File

@@ -26,11 +26,17 @@
width: 100%;
}
.settings.user-groups table.user-group-list tr.user td.user-group-name a[href] {
.settings.user-groups table.user-group-list tr.user-group td.user-group-name a[href] {
display: block;
padding: .5em 1em;
}
.settings.user-groups table.user-group-list tr.user td.user-group-name {
padding: 0;
.settings.user-groups table.user-group-list tr.user-group.disabled,
.settings.user-groups table.user-group-list tr.user-group.disabled td.user-group-name a[href] {
color: gray;
font-style: italic;
}
.settings.user-groups table.user-group-list tr.user-group td.user-group-name {
padding: 0;
}

View File

@@ -36,6 +36,12 @@
padding: .5em 1em;
}
.settings.users table.user-list tr.user.disabled,
.settings.users table.user-list tr.user.disabled td.username a[href] {
color: gray;
font-style: italic;
}
.settings.users table.user-list tr.user td.username {
padding: 0;
}
}

View File

@@ -30,7 +30,7 @@
</tr>
</thead>
<tbody ng-class="{loading: !isLoaded()}">
<tr ng-repeat="manageableUserGroup in manageableUserGroupPage" class="user-group">
<tr ng-repeat="manageableUserGroup in manageableUserGroupPage" class="user-group" ng-class="{disabled: manageableUserGroup.userGroup.disabled}">
<td class="user-group-name">
<a ng-href="#/manage/{{manageableUserGroup.dataSource | escape}}/userGroups/{{manageableUserGroup.userGroup.identifier | escape}}">
<div class="icon user-group"></div>

View File

@@ -39,7 +39,7 @@
</tr>
</thead>
<tbody ng-class="{loading: !isLoaded()}">
<tr ng-repeat="manageableUser in manageableUserPage" class="user">
<tr ng-repeat="manageableUser in manageableUserPage" class="user" ng-class="{disabled: manageableUser.user.disabled}">
<td class="username">
<a ng-href="#/manage/{{manageableUser.dataSource | escape}}/users/{{manageableUser.user.username | escape}}">
<div class="icon user"></div>

View File

@@ -343,6 +343,7 @@
"FIELD_HEADER_CREATE_NEW_CONNECTIONS" : "Crear noves connexions:",
"FIELD_HEADER_CREATE_NEW_CONNECTION_GROUPS" : "Crear grups de connexió nous:",
"FIELD_HEADER_CREATE_NEW_SHARING_PROFILES" : "Crear nous perfils per compartir:",
"FIELD_HEADER_USER_DISABLED" : "Inici de sessió desactivat:",
"FIELD_HEADER_USERNAME" : "Nom d'usuari:",
"HELP_NO_USER_GROUPS" : "Actualment, aquest usuari no pertany a cap grup. Amplieu aquesta secció per afegir-lo a grups.",
@@ -373,6 +374,7 @@
"FIELD_HEADER_CREATE_NEW_CONNECTIONS" : "@:MANAGE_USER.FIELD_HEADER_CREATE_NEW_CONNECTIONS",
"FIELD_HEADER_CREATE_NEW_CONNECTION_GROUPS" : "@:MANAGE_USER.FIELD_HEADER_CREATE_NEW_CONNECTION_GROUPS",
"FIELD_HEADER_CREATE_NEW_SHARING_PROFILES" : "@:MANAGE_USER.FIELD_HEADER_CREATE_NEW_SHARING_PROFILES",
"FIELD_HEADER_USER_GROUP_DISABLED" : "Desactivat:",
"FIELD_HEADER_USER_GROUP_NAME" : "Nom del grup:",
"HELP_NO_USER_GROUPS" : "Actualment aquest grup no pertany a cap grup. Amplieu aquesta secció per afegir grups.",

View File

@@ -411,6 +411,7 @@
"FIELD_HEADER_CREATE_NEW_SHARING_PROFILES" : "Neues Verteil-Profil erstellen:",
"FIELD_HEADER_PASSWORD" : "@:APP.FIELD_HEADER_PASSWORD",
"FIELD_HEADER_PASSWORD_AGAIN" : "@:APP.FIELD_HEADER_PASSWORD_AGAIN",
"FIELD_HEADER_USER_DISABLED" : "Login deaktiviert:",
"FIELD_HEADER_USERNAME" : "Benutzername:",
"FIELD_PLACEHOLDER_FILTER" : "@:APP.FIELD_PLACEHOLDER_FILTER",
@@ -449,6 +450,7 @@
"FIELD_HEADER_CREATE_NEW_CONNECTIONS" : "@:MANAGE_USER.FIELD_HEADER_CREATE_NEW_CONNECTIONS",
"FIELD_HEADER_CREATE_NEW_CONNECTION_GROUPS" : "@:MANAGE_USER.FIELD_HEADER_CREATE_NEW_CONNECTION_GROUPS",
"FIELD_HEADER_CREATE_NEW_SHARING_PROFILES" : "@:MANAGE_USER.FIELD_HEADER_CREATE_NEW_SHARING_PROFILES",
"FIELD_HEADER_USER_GROUP_DISABLED" : "Deaktiviert:",
"FIELD_HEADER_USER_GROUP_NAME" : "Name der Benutzergruppe:",
"FIELD_PLACEHOLDER_FILTER" : "@:APP.FIELD_PLACEHOLDER_FILTER",

View File

@@ -416,6 +416,7 @@
"FIELD_HEADER_CREATE_NEW_SHARING_PROFILES" : "Create new sharing profiles:",
"FIELD_HEADER_PASSWORD" : "@:APP.FIELD_HEADER_PASSWORD",
"FIELD_HEADER_PASSWORD_AGAIN" : "@:APP.FIELD_HEADER_PASSWORD_AGAIN",
"FIELD_HEADER_USER_DISABLED" : "Login disabled:",
"FIELD_HEADER_USERNAME" : "Username:",
"FIELD_PLACEHOLDER_FILTER" : "@:APP.FIELD_PLACEHOLDER_FILTER",
@@ -454,6 +455,7 @@
"FIELD_HEADER_CREATE_NEW_CONNECTIONS" : "@:MANAGE_USER.FIELD_HEADER_CREATE_NEW_CONNECTIONS",
"FIELD_HEADER_CREATE_NEW_CONNECTION_GROUPS" : "@:MANAGE_USER.FIELD_HEADER_CREATE_NEW_CONNECTION_GROUPS",
"FIELD_HEADER_CREATE_NEW_SHARING_PROFILES" : "@:MANAGE_USER.FIELD_HEADER_CREATE_NEW_SHARING_PROFILES",
"FIELD_HEADER_USER_GROUP_DISABLED" : "Disabled:",
"FIELD_HEADER_USER_GROUP_NAME" : "Group name:",
"FIELD_PLACEHOLDER_FILTER" : "@:APP.FIELD_PLACEHOLDER_FILTER",

View File

@@ -317,6 +317,7 @@
"FIELD_HEADER_CREATE_NEW_SHARING_PROFILES" : "Crear nuevos perfiles de compartir:",
"FIELD_HEADER_PASSWORD" : "@:APP.FIELD_HEADER_PASSWORD",
"FIELD_HEADER_PASSWORD_AGAIN" : "@:APP.FIELD_HEADER_PASSWORD_AGAIN",
"FIELD_HEADER_USER_DISABLED" : "Inicio de sesión deshabilitado:",
"FIELD_HEADER_USERNAME" : "Nombre de usuario:",
"FIELD_PLACEHOLDER_FILTER" : "@:APP.FIELD_PLACEHOLDER_FILTER",
@@ -355,6 +356,7 @@
"FIELD_HEADER_CREATE_NEW_CONNECTIONS" : "@:MANAGE_USER.FIELD_HEADER_CREATE_NEW_CONNECTIONS",
"FIELD_HEADER_CREATE_NEW_CONNECTION_GROUPS" : "@:MANAGE_USER.FIELD_HEADER_CREATE_NEW_CONNECTION_GROUPS",
"FIELD_HEADER_CREATE_NEW_SHARING_PROFILES" : "@:MANAGE_USER.FIELD_HEADER_CREATE_NEW_SHARING_PROFILES",
"FIELD_HEADER_USER_GROUP_DISABLED" : "Deshabilitado:",
"FIELD_HEADER_USER_GROUP_NAME" : "Nombre del grupo:",
"FIELD_PLACEHOLDER_FILTER" : "@:APP.FIELD_PLACEHOLDER_FILTER",

View File

@@ -413,6 +413,7 @@
"FIELD_HEADER_CREATE_NEW_SHARING_PROFILES" : "Créer de nouveaux profils de partage:",
"FIELD_HEADER_PASSWORD" : "@:APP.FIELD_HEADER_PASSWORD",
"FIELD_HEADER_PASSWORD_AGAIN" : "@:APP.FIELD_HEADER_PASSWORD_AGAIN",
"FIELD_HEADER_USER_DISABLED" : "Connexion désactivée:",
"FIELD_HEADER_USERNAME" : "Identifiant:",
"FIELD_PLACEHOLDER_FILTER" : "@:APP.FIELD_PLACEHOLDER_FILTER",
@@ -451,6 +452,7 @@
"FIELD_HEADER_CREATE_NEW_CONNECTIONS" : "@:MANAGE_USER.FIELD_HEADER_CREATE_NEW_CONNECTIONS",
"FIELD_HEADER_CREATE_NEW_CONNECTION_GROUPS" : "@:MANAGE_USER.FIELD_HEADER_CREATE_NEW_CONNECTION_GROUPS",
"FIELD_HEADER_CREATE_NEW_SHARING_PROFILES" : "@:MANAGE_USER.FIELD_HEADER_CREATE_NEW_SHARING_PROFILES",
"FIELD_HEADER_USER_GROUP_DISABLED" : "Désactivé:",
"FIELD_HEADER_USER_GROUP_NAME" : "Nom Groupe:",
"FIELD_PLACEHOLDER_FILTER" : "@:APP.FIELD_PLACEHOLDER_FILTER",

View File

@@ -282,6 +282,7 @@
"FIELD_HEADER_CREATE_NEW_SHARING_PROFILES" : "共有プロファイルの作成:",
"FIELD_HEADER_PASSWORD" : "@:APP.FIELD_HEADER_PASSWORD",
"FIELD_HEADER_PASSWORD_AGAIN" : "@:APP.FIELD_HEADER_PASSWORD_AGAIN",
"FIELD_HEADER_USER_DISABLED" : "ログインの無効化:",
"FIELD_HEADER_USERNAME" : "ユーザ名:",
"FIELD_PLACEHOLDER_FILTER" : "@:APP.FIELD_PLACEHOLDER_FILTER",
@@ -320,6 +321,7 @@
"FIELD_HEADER_CREATE_NEW_CONNECTIONS" : "@:MANAGE_USER.FIELD_HEADER_CREATE_NEW_CONNECTIONS",
"FIELD_HEADER_CREATE_NEW_CONNECTION_GROUPS" : "@:MANAGE_USER.FIELD_HEADER_CREATE_NEW_CONNECTION_GROUPS",
"FIELD_HEADER_CREATE_NEW_SHARING_PROFILES" : "@:MANAGE_USER.FIELD_HEADER_CREATE_NEW_SHARING_PROFILES",
"FIELD_HEADER_USER_GROUP_DISABLED" : "グループの無効化:",
"FIELD_HEADER_USER_GROUP_NAME" : "グループ名:",
"FIELD_PLACEHOLDER_FILTER" : "@:APP.FIELD_PLACEHOLDER_FILTER",

View File

@@ -314,6 +314,7 @@
"FIELD_HEADER_CREATE_NEW_SHARING_PROFILES" : "새로운 공유 프로파일 생성",
"FIELD_HEADER_PASSWORD" : "@:APP.FIELD_HEADER_PASSWORD",
"FIELD_HEADER_PASSWORD_AGAIN" : "@:APP.FIELD_HEADER_PASSWORD_AGAIN",
"FIELD_HEADER_USER_DISABLED" : "로그인 비활성화:",
"FIELD_HEADER_USERNAME" : "사용자 이름:",
"FIELD_PLACEHOLDER_FILTER" : "@:APP.FIELD_PLACEHOLDER_FILTER",
@@ -351,6 +352,7 @@
"FIELD_HEADER_CREATE_NEW_USER_GROUPS" : "@:MANAGE_USER.FIELD_HEADER_CREATE_NEW_USER_GROUPS",
"FIELD_HEADER_CREATE_NEW_CONNECTIONS" : "@:MANAGE_USER.FIELD_HEADER_CREATE_NEW_CONNECTIONS",
"FIELD_HEADER_CREATE_NEW_CONNECTION_GROUPS" : "@:MANAGE_USER.FIELD_HEADER_CREATE_NEW_CONNECTION_GROUPS",
"FIELD_HEADER_USER_GROUP_DISABLED" : "비활성화:",
"FIELD_HEADER_USER_GROUP_NAME" : "그룹 이름:",
"FIELD_PLACEHOLDER_FILTER" : "@:APP.FIELD_PLACEHOLDER_FILTER",

View File

@@ -326,6 +326,7 @@
"FIELD_HEADER_CREATE_NEW_SHARING_PROFILES" : "Tworzenie nowych profili udostępniania:",
"FIELD_HEADER_PASSWORD" : "@:APP.FIELD_HEADER_PASSWORD",
"FIELD_HEADER_PASSWORD_AGAIN" : "@:APP.FIELD_HEADER_PASSWORD_AGAIN",
"FIELD_HEADER_USER_DISABLED" : "Logowanie zablokowane:",
"FIELD_HEADER_USERNAME" : "Nazwa użytkownika:",
"FIELD_PLACEHOLDER_FILTER" : "@:APP.FIELD_PLACEHOLDER_FILTER",
@@ -364,6 +365,7 @@
"FIELD_HEADER_CREATE_NEW_CONNECTIONS" : "@:MANAGE_USER.FIELD_HEADER_CREATE_NEW_CONNECTIONS",
"FIELD_HEADER_CREATE_NEW_CONNECTION_GROUPS" : "@:MANAGE_USER.FIELD_HEADER_CREATE_NEW_CONNECTION_GROUPS",
"FIELD_HEADER_CREATE_NEW_SHARING_PROFILES" : "@:MANAGE_USER.FIELD_HEADER_CREATE_NEW_SHARING_PROFILES",
"FIELD_HEADER_USER_DISABLED" : "Wyłączona:",
"FIELD_HEADER_USER_GROUP_NAME" : "Nazwa grupy:",
"FIELD_PLACEHOLDER_FILTER" : "@:APP.FIELD_PLACEHOLDER_FILTER",

View File

@@ -318,6 +318,7 @@
"FIELD_HEADER_CREATE_NEW_SHARING_PROFILES" : "Criar novos perfis de compartilhamento:",
"FIELD_HEADER_PASSWORD" : "@:APP.FIELD_HEADER_PASSWORD",
"FIELD_HEADER_PASSWORD_AGAIN" : "@:APP.FIELD_HEADER_PASSWORD_AGAIN",
"FIELD_HEADER_USER_DISABLED" : "Login desativado:",
"FIELD_HEADER_USERNAME" : "Usuário:",
"FIELD_PLACEHOLDER_FILTER" : "@:APP.FIELD_PLACEHOLDER_FILTER",
@@ -356,6 +357,7 @@
"FIELD_HEADER_CREATE_NEW_CONNECTIONS" : "@:MANAGE_USER.FIELD_HEADER_CREATE_NEW_CONNECTIONS",
"FIELD_HEADER_CREATE_NEW_CONNECTION_GROUPS" : "@:MANAGE_USER.FIELD_HEADER_CREATE_NEW_CONNECTION_GROUPS",
"FIELD_HEADER_CREATE_NEW_SHARING_PROFILES" : "@:MANAGE_USER.FIELD_HEADER_CREATE_NEW_SHARING_PROFILES",
"FIELD_HEADER_USER_GROUP_DISABLED" : "Desativado:",
"FIELD_HEADER_USER_GROUP_NAME" : "Nome do grupo:",
"FIELD_PLACEHOLDER_FILTER" : "@:APP.FIELD_PLACEHOLDER_FILTER",

View File

@@ -309,6 +309,7 @@
"FIELD_HEADER_CREATE_NEW_SHARING_PROFILES" : "Создание нового профиля расшаривания:",
"FIELD_HEADER_PASSWORD" : "@:APP.FIELD_HEADER_PASSWORD",
"FIELD_HEADER_PASSWORD_AGAIN" : "@:APP.FIELD_HEADER_PASSWORD_AGAIN",
"FIELD_HEADER_USER_DISABLED" : "Аккаунт отключен:",
"FIELD_HEADER_USERNAME" : "Имя пользователя:",
"FIELD_PLACEHOLDER_FILTER" : "@:APP.FIELD_PLACEHOLDER_FILTER",
@@ -347,6 +348,7 @@
"FIELD_HEADER_CREATE_NEW_CONNECTIONS" : "@:MANAGE_USER.FIELD_HEADER_CREATE_NEW_CONNECTIONS",
"FIELD_HEADER_CREATE_NEW_CONNECTION_GROUPS" : "@:MANAGE_USER.FIELD_HEADER_CREATE_NEW_CONNECTION_GROUPS",
"FIELD_HEADER_CREATE_NEW_SHARING_PROFILES" : "@:MANAGE_USER.FIELD_HEADER_CREATE_NEW_SHARING_PROFILES",
"FIELD_HEADER_USER_GROUP_DISABLED" : "Группа отключена:",
"FIELD_HEADER_USER_GROUP_NAME" : "Название:",
"FIELD_PLACEHOLDER_FILTER" : "@:APP.FIELD_PLACEHOLDER_FILTER",

View File

@@ -406,6 +406,7 @@
"FIELD_HEADER_CREATE_NEW_SHARING_PROFILES" : "新建共享设定:",
"FIELD_HEADER_PASSWORD" : "@:APP.FIELD_HEADER_PASSWORD",
"FIELD_HEADER_PASSWORD_AGAIN" : "@:APP.FIELD_HEADER_PASSWORD_AGAIN",
"FIELD_HEADER_USER_DISABLED" : "已禁用登录:",
"FIELD_HEADER_USERNAME" : "用户名:",
"FIELD_PLACEHOLDER_FILTER" : "@:APP.FIELD_PLACEHOLDER_FILTER",
@@ -444,7 +445,8 @@
"FIELD_HEADER_CREATE_NEW_CONNECTIONS" : "@:MANAGE_USER.FIELD_HEADER_CREATE_NEW_CONNECTIONS",
"FIELD_HEADER_CREATE_NEW_CONNECTION_GROUPS" : "@:MANAGE_USER.FIELD_HEADER_CREATE_NEW_CONNECTION_GROUPS",
"FIELD_HEADER_CREATE_NEW_SHARING_PROFILES" : "@:MANAGE_USER.FIELD_HEADER_CREATE_NEW_SHARING_PROFILES",
"FIELD_HEADER_USER_GROUP_NAME" : "用户组名称:",
"FIELD_HEADER_USER_GROUP_DISABLED" : "禁用:",
"FIELD_HEADER_USER_GROUP_NAME" : "用户组名称:",
"FIELD_PLACEHOLDER_FILTER" : "@:APP.FIELD_PLACEHOLDER_FILTER",
@@ -1130,4 +1132,4 @@
}
}
}

View File

@@ -43,6 +43,11 @@ public class APIUser {
*/
private String password;
/**
* Boolean value indicating whether or not this user account is disabled.
*/
private boolean disabled;
/**
* Map of all associated attributes by attribute identifier.
*/
@@ -61,7 +66,9 @@ public class APIUser {
/**
* Construct a new APIUser from the provided User.
* @param user The User to construct the APIUser from.
*
* @param user
* The User to construct the APIUser from.
*/
public APIUser(User user) {
@@ -69,6 +76,7 @@ public class APIUser {
this.username = user.getIdentifier();
this.password = user.getPassword();
this.lastActive = user.getLastActive();
this.disabled = user.isDisabled();
// Associate any attributes
this.attributes = user.getAttributes();
@@ -77,7 +85,9 @@ public class APIUser {
/**
* Returns the username for this user.
* @return The username for this user.
*
* @return
* The username for this user.
*/
public String getUsername() {
return username;
@@ -85,7 +95,9 @@ public class APIUser {
/**
* Set the username for this user.
* @param username The username for this user.
*
* @param username
* The username for this user.
*/
public void setUsername(String username) {
this.username = username;
@@ -93,7 +105,9 @@ public class APIUser {
/**
* Returns the password for this user.
* @return The password for this user.
*
* @return
* The password for this user.
*/
public String getPassword() {
return password;
@@ -101,11 +115,34 @@ public class APIUser {
/**
* Set the password for this user.
* @param password The password for this user.
*
* @param password
* The password for this user.
*/
public void setPassword(String password) {
this.password = password;
}
/**
* Returns true if this user account is disabled, otherwise false.
*
* @return
* True if this user account is disabled, otherwise false.
*/
public boolean isDisabled() {
return disabled;
}
/**
* Sets the disabled status of this user account, disabling the account
* if set to true.
*
* @param disabled
* True if this user account should be disabled.
*/
public void setDisabled(boolean disabled) {
this.disabled = disabled;
}
/**
* Returns a map of all attributes associated with this user. Each entry

View File

@@ -69,6 +69,16 @@ public class APIUserWrapper implements User {
public void setPassword(String password) {
apiUser.setPassword(password);
}
@Override
public boolean isDisabled() {
return apiUser.isDisabled();
}
@Override
public void setDisabled(boolean disabled) {
apiUser.setDisabled(disabled);
}
@Override
public Map<String, String> getAttributes() {

View File

@@ -49,6 +49,9 @@ public class UserObjectTranslator
// Do not update the user password if no password was provided
if (object.getPassword() != null)
existingObject.setPassword(object.getPassword());
// Update disabled status
existingObject.setDisabled(object.isDisabled());
// Update user attributes
existingObject.setAttributes(object.getAttributes());

View File

@@ -36,6 +36,11 @@ public class APIUserGroup {
* The identifier of this user group.
*/
private String identifier;
/**
* Boolean value indicating if this UserGroup is disabled.
*/
private boolean disabled;
/**
* Map of all associated attributes by attribute identifier.
@@ -55,6 +60,7 @@ public class APIUserGroup {
*/
public APIUserGroup(UserGroup group) {
this.identifier = group.getIdentifier();
this.disabled = group.isDisabled();
this.attributes = group.getAttributes();
}
@@ -79,6 +85,27 @@ public class APIUserGroup {
public void setIdentifier(String identifier) {
this.identifier = identifier;
}
/**
* Return true if this user group is disabled, otherwise false.
*
* @return
* True if this user group is disabled, otherwise false.
*/
public boolean isDisabled() {
return disabled;
}
/**
* Sets whether or not this user group is disabled to the parameter
* provided.
*
* @param disabled
* True if the user group should be disabled, otherwise false.
*/
public void setDisabled(boolean disabled) {
this.disabled = disabled;
}
/**
* Returns a map of all attributes associated with this user group. Each

View File

@@ -61,6 +61,16 @@ public class APIUserGroupWrapper implements UserGroup {
public void setIdentifier(String identifier) {
apiUserGroup.setIdentifier(identifier);
}
@Override
public boolean isDisabled() {
return apiUserGroup.isDisabled();
}
@Override
public void setDisabled(boolean disabled) {
apiUserGroup.setDisabled(disabled);
}
@Override
public Map<String, String> getAttributes() {

View File

@@ -47,6 +47,9 @@ public class UserGroupObjectTranslator
public void applyExternalChanges(UserGroup existingObject,
APIUserGroup object) throws GuacamoleException {
// Update disabled status
existingObject.setDisabled(object.isDisabled());
// Update user attributes
existingObject.setAttributes(object.getAttributes());