[ https://issues.apache.org/jira/browse/CLOUDSTACK-8562?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15241857#comment-15241857 ]
ASF GitHub Bot commented on CLOUDSTACK-8562: -------------------------------------------- Github user jburwell commented on a diff in the pull request: https://github.com/apache/cloudstack/pull/1489#discussion_r59786533 --- Diff: api/src/org/apache/cloudstack/acl/Rule.java --- @@ -0,0 +1,42 @@ +// 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.cloudstack.acl; + +import com.cloud.exception.InvalidParameterValueException; +import com.google.common.base.Strings; + +public final class Rule { + private final String rule; + private final static String ALLOWED_PATTERN = "^[a-zA-Z0-9*]+$"; + + public Rule(final String rule) { + validate(rule); + this.rule = rule; + } + + public String toString() { + return rule; + } + + public static boolean validate(final String rule) throws InvalidParameterValueException { + if (Strings.isNullOrEmpty(rule) || !rule.matches(ALLOWED_PATTERN)) { --- End diff -- Extract this validation logic into an immutable value class, ``Rule``, to encapsulate this validation logic and provide strong type specification in lower layers. > User Definable Roles > -------------------- > > Key: CLOUDSTACK-8562 > URL: https://issues.apache.org/jira/browse/CLOUDSTACK-8562 > Project: CloudStack > Issue Type: New Feature > Security Level: Public(Anyone can view this level - this is the > default.) > Components: Management Server > Reporter: Paul Angus > Assignee: Rohit Yadav > > Static command.properties moved to database and made user definable -- This message was sent by Atlassian JIRA (v6.3.4#6332)