向用户帐户分配权限的最佳方法?

时间:2018-07-30 20:43:19

标签: javascript jquery html5 permissions user-accounts

在过去的几天中,我一直在为单页应用程序开发管理门户。但是,在创建用户帐户之后,下一步就是为该帐户分配permissions。我提出了一些逻辑和数据库设计,但是我不确定这是否是最好的方法。因此,每个帐户都可以选择四个不同的访问级别之一。选项包括地区,州,城市和建筑物。如果访问级别为Region(顶级),则没有理由为该帐户分配任何权限。如果帐户的访问级别为State/City/Building,则用户应分配权限。这是“帐户和权限”的数据库表布局:

            Accounts
AccountID  Username  AccessLevel
031688      jmeyer        R
894532      mknutson      S
453245      rdickson      C
990745      aatkins       B

           Permissions
AccountID State  City     Building
894532     NC    Null       Null
894532     WA    Null       Null
453245     VA    Richmond   Null
453245     IA    Iowa City  Null
453245     NY    New York   Null
990745     VA    Richmond   1067 
990745     FL    Orlando    8767

您可以在上方看到,Region没有任何记录。其他访问级别将至少有一个或多个记录,具体取决于用户帐户。通过AccountID链接的两个表(帐户中的PK和权限中的FK)之间的连接非常简单直接。棘手的部分是前端,这是我到目前为止所拥有的:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script language="javascript" src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<form name="frmpermission" id="frmpermission" autocomplete="off">
  <input type="hidden" class="form-control" name="frmpermission_recordid" id="frmpermission_recordid">
  <div class="form-group">
    <label class="control-label" for="state"><span class="label label-primary">State:</span></label>
    <select class="form-control" name="frmpermission_state" id="frmpermission_state" required>
      <option value="">--Choose State--</option>
    </select>
  </div>
  <div class="form-group">
    <label class="control-label" for="city"><span class="label label-primary">City:</span></label>
    <select class="form-control" name="frmpermission_city" id="frmpermission_city" required>
      <option value="">--Choose City--</option>
    </select>
  </div>
  <div class="form-group">
    <label class="control-label" for="building"><span class="label label-primary">Building:</span></label>
    <select class="form-control" name="frmpermission_bldgnumber" id="frmpermission_bldgnumber" required>
      <option value="">--Choose Building--</option>
    </select>
  </div>
  <div class="row">
    <div class="form-group col-xs-12 col-sm-12 col-md-12 col-lg-12">
      <button type="submit" name="frmpermission_submit" id="frmpermission_submit" class="btn btn-primary">Submit</button>
    </div>
    <div class="form-group col-xs-12 col-sm-12 col-md-12 col-lg-12">
      <div class="alert message-submit"></div>
    </div>
  </div>
</form>

以上示例显示了用于添加/编辑州,城市和建筑物访问级别权限的表单。在某些情况下,例如建筑,我需要所有三个字段。选择下拉菜单中填充了JavaScript。我的问题是最好的方法是什么?

1)在表单中显示所有三个下拉菜单,并使用JS根据访问级别禁用/启用字段?

2)仅显示该访问级别所需的字段?

我还应该为每个访问级别在HTML中构建三个单独的表单,还是应该根据访问级别动态地构建动态表单?很难决定哪种方法将来会是最好的和最容易的维护。另外,我还必须考虑编辑过程以及如何将这些数据填充回表单中。如果有人对如何解决这个问题有个好主意,请告诉我。

0 个答案:

没有答案
相关问题