mirror of
https://github.com/gyurix1968/guacamole-client.git
synced 2025-09-06 05:07:41 +00:00
GUACAMOLE-1479: Merge change to styling of disabled users/groups.
This commit is contained in:
@@ -63,12 +63,6 @@ public class ModeledUser extends ModeledPermissions<UserModel> implements User {
|
||||
*/
|
||||
private static final Logger logger = LoggerFactory.getLogger(ModeledUser.class);
|
||||
|
||||
/**
|
||||
* The name of the attribute which controls whether a user account is
|
||||
* disabled.
|
||||
*/
|
||||
public static final String DISABLED_ATTRIBUTE_NAME = "disabled";
|
||||
|
||||
/**
|
||||
* The name of the attribute which controls whether a user's password is
|
||||
* expired and must be reset upon login.
|
||||
@@ -121,7 +115,6 @@ public class ModeledUser extends ModeledPermissions<UserModel> implements User {
|
||||
* form.
|
||||
*/
|
||||
public static final Form ACCOUNT_RESTRICTIONS = new Form("restrictions", Arrays.<Field>asList(
|
||||
new BooleanField(DISABLED_ATTRIBUTE_NAME, "true"),
|
||||
new BooleanField(EXPIRED_ATTRIBUTE_NAME, "true"),
|
||||
new TimeField(ACCESS_WINDOW_START_ATTRIBUTE_NAME),
|
||||
new TimeField(ACCESS_WINDOW_END_ATTRIBUTE_NAME),
|
||||
@@ -149,7 +142,6 @@ public class ModeledUser extends ModeledPermissions<UserModel> implements User {
|
||||
User.Attribute.EMAIL_ADDRESS,
|
||||
User.Attribute.ORGANIZATION,
|
||||
User.Attribute.ORGANIZATIONAL_ROLE,
|
||||
DISABLED_ATTRIBUTE_NAME,
|
||||
EXPIRED_ATTRIBUTE_NAME,
|
||||
ACCESS_WINDOW_START_ATTRIBUTE_NAME,
|
||||
ACCESS_WINDOW_END_ATTRIBUTE_NAME,
|
||||
@@ -282,6 +274,16 @@ public class ModeledUser extends ModeledPermissions<UserModel> implements User {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isDisabled() {
|
||||
return getModel().isDisabled();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setDisabled(boolean disabled) {
|
||||
getModel().setDisabled(disabled);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the this user's current password record. If the user is new, this
|
||||
* will be null. Note that this may represent a different password than what
|
||||
@@ -309,9 +311,6 @@ public class ModeledUser extends ModeledPermissions<UserModel> implements User {
|
||||
*/
|
||||
private void putRestrictedAttributes(Map<String, String> attributes) {
|
||||
|
||||
// Set disabled attribute
|
||||
attributes.put(DISABLED_ATTRIBUTE_NAME, getModel().isDisabled() ? "true" : null);
|
||||
|
||||
// Set password expired attribute
|
||||
attributes.put(EXPIRED_ATTRIBUTE_NAME, getModel().isExpired() ? "true" : null);
|
||||
|
||||
@@ -424,10 +423,6 @@ public class ModeledUser extends ModeledPermissions<UserModel> implements User {
|
||||
*/
|
||||
private void setRestrictedAttributes(Map<String, String> attributes) {
|
||||
|
||||
// Translate disabled attribute
|
||||
if (attributes.containsKey(DISABLED_ATTRIBUTE_NAME))
|
||||
getModel().setDisabled("true".equals(attributes.get(DISABLED_ATTRIBUTE_NAME)));
|
||||
|
||||
// Translate password expired attribute
|
||||
if (attributes.containsKey(EXPIRED_ATTRIBUTE_NAME))
|
||||
getModel().setExpired("true".equals(attributes.get(EXPIRED_ATTRIBUTE_NAME)));
|
||||
@@ -737,19 +732,6 @@ public class ModeledUser extends ModeledPermissions<UserModel> implements User {
|
||||
return isActive(getAccessWindowStart(), getAccessWindowEnd());
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether this user account has been disabled. The credentials of
|
||||
* disabled user accounts are treated as invalid, effectively disabling
|
||||
* that user's access to data for which they would otherwise have
|
||||
* permission.
|
||||
*
|
||||
* @return
|
||||
* true if this user account has been disabled, false otherwise.
|
||||
*/
|
||||
public boolean isDisabled() {
|
||||
return getModel().isDisabled();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns whether this user's password has expired. If a user's password
|
||||
* is expired, it must be immediately changed upon login. A user account
|
||||
|
@@ -42,36 +42,17 @@ import org.apache.guacamole.net.auth.UserGroup;
|
||||
public class ModeledUserGroup extends ModeledPermissions<UserGroupModel>
|
||||
implements UserGroup {
|
||||
|
||||
/**
|
||||
* The name of the attribute which controls whether a user group is
|
||||
* disabled.
|
||||
*/
|
||||
public static final String DISABLED_ATTRIBUTE_NAME = "disabled";
|
||||
|
||||
/**
|
||||
* All attributes related to restricting user groups, within a logical
|
||||
* form.
|
||||
*/
|
||||
public static final Form ACCOUNT_RESTRICTIONS = new Form("restrictions", Arrays.<Field>asList(
|
||||
new BooleanField(DISABLED_ATTRIBUTE_NAME, "true")
|
||||
));
|
||||
|
||||
/**
|
||||
* All possible attributes of user groups organized as individual,
|
||||
* logical forms.
|
||||
*/
|
||||
public static final Collection<Form> ATTRIBUTES = Collections.unmodifiableCollection(Arrays.asList(
|
||||
ACCOUNT_RESTRICTIONS
|
||||
));
|
||||
public static final Collection<Form> ATTRIBUTES = Collections.emptyList();
|
||||
|
||||
/**
|
||||
* The names of all attributes which are explicitly supported by this
|
||||
* extension's UserGroup objects.
|
||||
*/
|
||||
public static final Set<String> ATTRIBUTE_NAMES =
|
||||
Collections.unmodifiableSet(new HashSet<String>(Arrays.asList(
|
||||
DISABLED_ATTRIBUTE_NAME
|
||||
)));
|
||||
public static final Set<String> ATTRIBUTE_NAMES = Collections.emptySet();
|
||||
|
||||
/**
|
||||
* Provider for RelatedObjectSets containing the user groups of which this
|
||||
@@ -122,6 +103,16 @@ public class ModeledUserGroup extends ModeledPermissions<UserGroupModel>
|
||||
this.exposeRestrictedAttributes = exposeRestrictedAttributes;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isDisabled() {
|
||||
return getModel().isDisabled();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setDisabled(boolean disabled) {
|
||||
getModel().setDisabled(disabled);
|
||||
}
|
||||
|
||||
/**
|
||||
* Stores all restricted (privileged) attributes within the given Map,
|
||||
* pulling the values of those attributes from the underlying user group
|
||||
@@ -133,9 +124,6 @@ public class ModeledUserGroup extends ModeledPermissions<UserGroupModel>
|
||||
*/
|
||||
private void putRestrictedAttributes(Map<String, String> attributes) {
|
||||
|
||||
// Set disabled attribute
|
||||
attributes.put(DISABLED_ATTRIBUTE_NAME, getModel().isDisabled() ? "true" : null);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -147,9 +135,6 @@ public class ModeledUserGroup extends ModeledPermissions<UserGroupModel>
|
||||
*/
|
||||
private void setRestrictedAttributes(Map<String, String> attributes) {
|
||||
|
||||
// Translate disabled attribute
|
||||
getModel().setDisabled("true".equals(attributes.get(DISABLED_ATTRIBUTE_NAME)));
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -89,7 +89,6 @@
|
||||
|
||||
"USER_ATTRIBUTES" : {
|
||||
|
||||
"FIELD_HEADER_DISABLED" : "Inici de sessió desactivat:",
|
||||
"FIELD_HEADER_EXPIRED" : "Contrasenya caducada:",
|
||||
"FIELD_HEADER_ACCESS_WINDOW_END" : "No permetre l'accés després:",
|
||||
"FIELD_HEADER_ACCESS_WINDOW_START" : "Permet l'accés després:",
|
||||
@@ -104,8 +103,6 @@
|
||||
|
||||
"USER_GROUP_ATTRIBUTES" : {
|
||||
|
||||
"FIELD_HEADER_DISABLED" : "Desactivat:",
|
||||
|
||||
"SECTION_HEADER_RESTRICTIONS" : "Restriccions de grup"
|
||||
|
||||
}
|
||||
|
@@ -88,7 +88,6 @@
|
||||
|
||||
"USER_ATTRIBUTES" : {
|
||||
|
||||
"FIELD_HEADER_DISABLED" : "Login deaktiviert:",
|
||||
"FIELD_HEADER_EXPIRED" : "Passwort abgelaufen:",
|
||||
"FIELD_HEADER_ACCESS_WINDOW_END" : "Zugriff nach dieser Uhrzeit nicht mehr erlauben:",
|
||||
"FIELD_HEADER_ACCESS_WINDOW_START" : "Zugriff erst nach dieser Uhrzeit erlauben:",
|
||||
@@ -103,8 +102,6 @@
|
||||
|
||||
"USER_GROUP_ATTRIBUTES" : {
|
||||
|
||||
"FIELD_HEADER_DISABLED" : "Deaktiviert:",
|
||||
|
||||
"SECTION_HEADER_RESTRICTIONS" : "Gruppeneinschränkung"
|
||||
|
||||
}
|
||||
|
@@ -89,7 +89,6 @@
|
||||
|
||||
"USER_ATTRIBUTES" : {
|
||||
|
||||
"FIELD_HEADER_DISABLED" : "Login disabled:",
|
||||
"FIELD_HEADER_EXPIRED" : "Password expired:",
|
||||
"FIELD_HEADER_ACCESS_WINDOW_END" : "Do not allow access after:",
|
||||
"FIELD_HEADER_ACCESS_WINDOW_START" : "Allow access after:",
|
||||
@@ -104,8 +103,6 @@
|
||||
|
||||
"USER_GROUP_ATTRIBUTES" : {
|
||||
|
||||
"FIELD_HEADER_DISABLED" : "Disabled:",
|
||||
|
||||
"SECTION_HEADER_RESTRICTIONS" : "Group Restrictions"
|
||||
|
||||
},
|
||||
|
@@ -89,7 +89,6 @@
|
||||
|
||||
"USER_ATTRIBUTES" : {
|
||||
|
||||
"FIELD_HEADER_DISABLED" : "Inicio de sesión deshabilitado:",
|
||||
"FIELD_HEADER_EXPIRED" : "Contraseña expirada:",
|
||||
"FIELD_HEADER_ACCESS_WINDOW_END" : "No permitir acceso despues de:",
|
||||
"FIELD_HEADER_ACCESS_WINDOW_START" : "Permitir acceso despues de:",
|
||||
@@ -104,8 +103,6 @@
|
||||
|
||||
"USER_GROUP_ATTRIBUTES" : {
|
||||
|
||||
"FIELD_HEADER_DISABLED" : "Deshabilitado:",
|
||||
|
||||
"SECTION_HEADER_RESTRICTIONS" : "Restricciones de grupo"
|
||||
|
||||
}
|
||||
|
@@ -89,7 +89,6 @@
|
||||
|
||||
"USER_ATTRIBUTES" : {
|
||||
|
||||
"FIELD_HEADER_DISABLED" : "Connexion désactivée:",
|
||||
"FIELD_HEADER_EXPIRED" : "Mot de passe expiré:",
|
||||
"FIELD_HEADER_ACCESS_WINDOW_END" : "Ne pas autoriser l'accès après:",
|
||||
"FIELD_HEADER_ACCESS_WINDOW_START" : "Autoriser l'accès après:",
|
||||
@@ -104,8 +103,6 @@
|
||||
|
||||
"USER_GROUP_ATTRIBUTES" : {
|
||||
|
||||
"FIELD_HEADER_DISABLED" : "Désactivé:",
|
||||
|
||||
"SECTION_HEADER_RESTRICTIONS" : "Restrictions de groupe"
|
||||
|
||||
}
|
||||
|
@@ -75,7 +75,7 @@
|
||||
|
||||
"USER_ATTRIBUTES" : {
|
||||
|
||||
"FIELD_HEADER_DISABLED" : "ログインの無効化:",
|
||||
|
||||
"FIELD_HEADER_EXPIRED" : "パスワード変更の強制:",
|
||||
"FIELD_HEADER_ACCESS_WINDOW_END" : "指定した時刻からアクセスを禁止する:",
|
||||
"FIELD_HEADER_ACCESS_WINDOW_START" : "指定した時刻からアクセスを許可する:",
|
||||
@@ -90,8 +90,6 @@
|
||||
|
||||
"USER_GROUP_ATTRIBUTES" : {
|
||||
|
||||
"FIELD_HEADER_DISABLED" : "グループの無効化:",
|
||||
|
||||
"SECTION_HEADER_RESTRICTIONS" : "グループ制限"
|
||||
|
||||
}
|
||||
|
@@ -88,7 +88,6 @@
|
||||
|
||||
"USER_ATTRIBUTES" : {
|
||||
|
||||
"FIELD_HEADER_DISABLED" : "로그인 비활성화:",
|
||||
"FIELD_HEADER_EXPIRED" : "비밀번호 만료됨:",
|
||||
"FIELD_HEADER_ACCESS_WINDOW_END" : "다음 이후에 액세스 허용 안함 :",
|
||||
"FIELD_HEADER_ACCESS_WINDOW_START" : "다음 이후에 엑세스 허용:",
|
||||
@@ -103,8 +102,6 @@
|
||||
|
||||
"USER_GROUP_ATTRIBUTES" : {
|
||||
|
||||
"FIELD_HEADER_DISABLED" : "비활성화:",
|
||||
|
||||
"SECTION_HEADER_RESTRICTIONS" : "그룹 제한"
|
||||
|
||||
}
|
||||
|
@@ -89,7 +89,6 @@
|
||||
|
||||
"USER_ATTRIBUTES" : {
|
||||
|
||||
"FIELD_HEADER_DISABLED" : "Logowanie zablokowane:",
|
||||
"FIELD_HEADER_EXPIRED" : "Hasło wygasło:",
|
||||
"FIELD_HEADER_ACCESS_WINDOW_END" : "Nie zezwalaj na dostęp po:",
|
||||
"FIELD_HEADER_ACCESS_WINDOW_START" : "Zezwalaj na dostęp od:",
|
||||
@@ -104,8 +103,6 @@
|
||||
|
||||
"USER_GROUP_ATTRIBUTES" : {
|
||||
|
||||
"FIELD_HEADER_DISABLED" : "Wyłączona:",
|
||||
|
||||
"SECTION_HEADER_RESTRICTIONS" : "Ograniczenia Grupy"
|
||||
|
||||
}
|
||||
|
@@ -90,7 +90,6 @@
|
||||
|
||||
"USER_ATTRIBUTES" : {
|
||||
|
||||
"FIELD_HEADER_DISABLED" : "Login desativado:",
|
||||
"FIELD_HEADER_EXPIRED" : "Senha expirada:",
|
||||
"FIELD_HEADER_ACCESS_WINDOW_END" : "Não permitir acesso após:",
|
||||
"FIELD_HEADER_ACCESS_WINDOW_START" : "Permitir acesso após:",
|
||||
@@ -105,8 +104,6 @@
|
||||
|
||||
"USER_GROUP_ATTRIBUTES" : {
|
||||
|
||||
"FIELD_HEADER_DISABLED" : "Desativado:",
|
||||
|
||||
"SECTION_HEADER_RESTRICTIONS" : "Restrições de Grupo"
|
||||
|
||||
}
|
||||
|
@@ -88,7 +88,6 @@
|
||||
|
||||
"USER_ATTRIBUTES" : {
|
||||
|
||||
"FIELD_HEADER_DISABLED" : "Аккаунт отключен:",
|
||||
"FIELD_HEADER_EXPIRED" : "Пароль просрочен:",
|
||||
"FIELD_HEADER_ACCESS_WINDOW_END" : "Запретить доступ после:",
|
||||
"FIELD_HEADER_ACCESS_WINDOW_START" : "Разрешить доступ после:",
|
||||
@@ -103,8 +102,6 @@
|
||||
|
||||
"USER_GROUP_ATTRIBUTES" : {
|
||||
|
||||
"FIELD_HEADER_DISABLED" : "Группа отключена:",
|
||||
|
||||
"SECTION_HEADER_RESTRICTIONS" : "Ограничения"
|
||||
|
||||
}
|
||||
|
@@ -89,7 +89,6 @@
|
||||
|
||||
"USER_ATTRIBUTES" : {
|
||||
|
||||
"FIELD_HEADER_DISABLED" : "已禁用登录:",
|
||||
"FIELD_HEADER_EXPIRED" : "密码已过期:",
|
||||
"FIELD_HEADER_ACCESS_WINDOW_END" : "之后不允许访问:",
|
||||
"FIELD_HEADER_ACCESS_WINDOW_START" : "之后允许访问:",
|
||||
@@ -104,8 +103,6 @@
|
||||
|
||||
"USER_GROUP_ATTRIBUTES" : {
|
||||
|
||||
"FIELD_HEADER_DISABLED" : "禁用:",
|
||||
|
||||
"SECTION_HEADER_RESTRICTIONS" : "组限制"
|
||||
|
||||
}
|
||||
|
@@ -29,7 +29,7 @@ import org.apache.guacamole.net.auth.permission.SystemPermissionSet;
|
||||
* Base implementation of UserGroup which provides default implementations of
|
||||
* most functions.
|
||||
*/
|
||||
public class AbstractUserGroup extends AbstractIdentifiable implements UserGroup {
|
||||
public abstract class AbstractUserGroup extends AbstractIdentifiable implements UserGroup {
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
|
@@ -78,6 +78,16 @@ public class DelegatingUser implements User {
|
||||
user.setPassword(password);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isDisabled() {
|
||||
return user.isDisabled();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setDisabled(boolean disabled) {
|
||||
user.setDisabled(disabled);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, String> getAttributes() {
|
||||
return user.getAttributes();
|
||||
|
@@ -66,6 +66,16 @@ public class DelegatingUserGroup implements UserGroup {
|
||||
userGroup.setIdentifier(identifier);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isDisabled() {
|
||||
return userGroup.isDisabled();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setDisabled(boolean disabled) {
|
||||
userGroup.setDisabled(disabled);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, String> getAttributes() {
|
||||
return userGroup.getAttributes();
|
||||
|
@@ -0,0 +1,48 @@
|
||||
/*
|
||||
* Licensed to the Apache Software Foundation (ASF) under one
|
||||
* or more contributor license agreements. See the NOTICE file
|
||||
* distributed with this work for additional information
|
||||
* regarding copyright ownership. The ASF licenses this file
|
||||
* to you under the Apache License, Version 2.0 (the
|
||||
* "License"); you may not use this file except in compliance
|
||||
* with the License. You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing,
|
||||
* software distributed under the License is distributed on an
|
||||
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
* KIND, either express or implied. See the License for the
|
||||
* specific language governing permissions and limitations
|
||||
* under the License.
|
||||
*/
|
||||
|
||||
package org.apache.guacamole.net.auth;
|
||||
|
||||
/**
|
||||
* An interface that defines items that can be enabled or disabled.
|
||||
*/
|
||||
public interface Disableable {
|
||||
|
||||
/**
|
||||
* Returns true if this object is disabled, otherwise false.
|
||||
*
|
||||
* @return
|
||||
* True if this object is disabled, otherwise false.
|
||||
*/
|
||||
default public boolean isDisabled() {
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the disabled status of this object to the boolean value provided,
|
||||
* true if the object should be disabled, otherwise false.
|
||||
*
|
||||
* @param disabled
|
||||
* True if the object should be disabled, otherwise false.
|
||||
*/
|
||||
default public void setDisabled(boolean disabled) {
|
||||
// Default implementation takes no action.
|
||||
}
|
||||
|
||||
}
|
@@ -29,7 +29,7 @@ import org.apache.guacamole.GuacamoleUnsupportedException;
|
||||
/**
|
||||
* A user of the Guacamole web application.
|
||||
*/
|
||||
public interface User extends Identifiable, Attributes, Permissions {
|
||||
public interface User extends Disableable, Identifiable, Attributes, Permissions {
|
||||
|
||||
/**
|
||||
* All standard attribute names with semantics defined by the Guacamole web
|
||||
|
@@ -26,7 +26,7 @@ import org.apache.guacamole.GuacamoleException;
|
||||
* any number of Guacamole users and other user groups, and defines the
|
||||
* permissions implicitly granted to its members.
|
||||
*/
|
||||
public interface UserGroup extends Identifiable, Attributes, Permissions {
|
||||
public interface UserGroup extends Disableable, Identifiable, Attributes, Permissions {
|
||||
|
||||
/**
|
||||
* Returns a set of all readable user groups of which this user group is a
|
||||
|
@@ -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>
|
||||
|
||||
|
@@ -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>
|
||||
|
||||
|
@@ -46,6 +46,17 @@ angular.module('manage').factory('ManageableUser', [function defineManageableUse
|
||||
*/
|
||||
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;
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
return ManageableUser;
|
||||
|
@@ -62,6 +62,13 @@ angular.module('rest').factory('User', [function defineUser() {
|
||||
*/
|
||||
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
|
||||
* semantics and validity of these attributes are dictated by the
|
||||
|
@@ -43,6 +43,13 @@ angular.module('rest').factory('UserGroup', [function defineUserGroup() {
|
||||
*/
|
||||
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.
|
||||
* The semantics and validity of these attributes are dictated by the
|
||||
|
@@ -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 {
|
||||
.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;
|
||||
}
|
@@ -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;
|
||||
}
|
@@ -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>
|
||||
|
@@ -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>
|
||||
|
@@ -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.",
|
||||
|
@@ -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",
|
||||
|
@@ -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",
|
||||
|
@@ -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",
|
||||
|
@@ -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",
|
||||
|
@@ -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",
|
||||
|
@@ -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",
|
||||
|
@@ -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",
|
||||
|
@@ -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",
|
||||
|
@@ -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",
|
||||
|
@@ -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",
|
||||
|
||||
|
@@ -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,12 +115,35 @@ 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
|
||||
* key is the attribute identifier, while each value is the attribute
|
||||
|
@@ -70,6 +70,16 @@ public class APIUserWrapper implements User {
|
||||
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() {
|
||||
return apiUser.getAttributes();
|
||||
|
@@ -50,6 +50,9 @@ public class UserObjectTranslator
|
||||
if (object.getPassword() != null)
|
||||
existingObject.setPassword(object.getPassword());
|
||||
|
||||
// Update disabled status
|
||||
existingObject.setDisabled(object.isDisabled());
|
||||
|
||||
// Update user attributes
|
||||
existingObject.setAttributes(object.getAttributes());
|
||||
|
||||
|
@@ -37,6 +37,11 @@ public class APIUserGroup {
|
||||
*/
|
||||
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();
|
||||
}
|
||||
|
||||
@@ -80,6 +86,27 @@ public class APIUserGroup {
|
||||
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
|
||||
* entry key is the attribute identifier, while each value is the attribute
|
||||
|
@@ -62,6 +62,16 @@ public class APIUserGroupWrapper implements UserGroup {
|
||||
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() {
|
||||
return apiUserGroup.getAttributes();
|
||||
|
@@ -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());
|
||||
|
||||
|
Reference in New Issue
Block a user