Github user bhaisaab commented on a diff in the pull request:

    https://github.com/apache/cloudstack/pull/1489#discussion_r60368615
  
    --- Diff: engine/schema/src/org/apache/cloudstack/acl/RolePermissionVO.java 
---
    @@ -0,0 +1,109 @@
    +// 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 javax.persistence.Column;
    +import javax.persistence.Entity;
    +import javax.persistence.EnumType;
    +import javax.persistence.Enumerated;
    +import javax.persistence.GeneratedValue;
    +import javax.persistence.GenerationType;
    +import javax.persistence.Id;
    +import javax.persistence.Table;
    +import java.util.UUID;
    +
    +@Entity
    +@Table(name = "role_permissions")
    +public class RolePermissionVO implements RolePermission {
    --- End diff --
    
    @koushik-das okay I got what you're saying, but it's not possible. Also see 
we've to be backward compatible with the static checker, so (1) the order of 
processing of rules need to be similar to the static-checker which is first 
allow rules then deny checks, then finally annotation and lastly deny all, (2) 
rules can be both apiname or wildcards such as list\* therefore we cannot have 
the references reversed or what you're suggesting, (3) the model promotes 
explicit rules than implicit declarations for security and various use-case (so 
we don't assume anything), (4) if we want an API like deployVM to be available 
for all or some role types we can use the authorized field in the API 
annotation (for example using authorized={RoleType.Admin, RoleType.User ... 
etc} will enable this API for all when no explicit rules are set by the admin). 
    
    I've thought this through but this is the best model we can have trading 
feature use, functionality and security. Provided this, do you have suggestion 
if we can improve this.?


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

Reply via email to