智汀家庭云-开发指南Golang(用户模块)

对智汀家庭云即smart-assistant(以下简称SA)的用户,角色,权限的说明。
1.用户
(1)SA的管理员
当某用户使用智汀App为某个家庭/公司添加SA之后,该用户就是SA的管理员,创建者,拥有SA所有的权限,包括邀请其他用户加入该家庭,为成员分配角色等。
(2)smart-assistant-token
smart-assistant-token 是家庭成员使用SA功能的用户凭证。每个用户加入一个绑定了SA的家庭时,SA会给该用户下发凭证。一个SA的用户凭证 只允许在该SA下使用。smart-assistant-token只能通过添加SA或者加入其他添加了SA的家庭获取。 smart-assistant-token的生成使用了securecookie.CodecsFromPairs(),securecookie.EncodeMulti()方法。
(3)设置账号密码
智汀App默认使用smart-assistant-token进行用户鉴权。如果您拥有智汀专业版,您可以通过设置账号密码后,使用账号密码登录智汀专业版以 体验SA更多的功能。
(4)邀请其他人加入您的家庭/公司
拥有生成邀请码权限的用户可以通过生成邀请二维码,供他人扫描以加入您的家庭。生成二维码时需要您选择相关的角色信息,角色信息表示扫码的用户以什么 角色加入该家庭。每次生成的二维码有效期为十分钟,您可以邀请任何您信任的人加入您的SA。 每个用户可以多次扫描二维码加入您的SA,用户在该家庭的角 色以最后一次扫描的二维码为主。二维码的有效信息通过jwt生成,想了解jwt的详细信息可以阅读https://jwt.io/introduction。
(5)将用户踢出您的家庭/公司
您可以使用SA的删除成员功能,将用户踢出您的家庭/公司。注意: SA创建者不允许被删除。
(6)注意事项

  • 每一个角色都拥有不同的权限,多个角色直接之间的权限是取并集的。如果您不想您的SA数据受到损失,在生成您的二维码时,谨慎选择角色信息。
  • SA创建者不允许被删除
2.角色
(1)默认角色
当您添加了SA后,SA会默认创建管理员和成员两个角色,同时将管理员的角色赋予您。不同的角色有不同的权限控制项,用户角色拥有的权限越高,可以使 用SA的功能也就越多。
(2)角色的创建、修改、删除
  • 角色的创建、修改、删除只能通过智汀专业版进行操作。
  • 角色的创建包括角色名称,角色所拥有的权限。
  • 角色的修改包括修改角色名称、增加或减少该角色拥有的权限。
  • 角色的删除意味着您会删除该角色以及该角色拥有的权限,同时拥有该角色的用户也会失去该角色。这可能会导致某些用户无法使用SA的功能。
(3)为用户设置角色
SA的创建者和扫码加入SA的用户都拥有自己的角色。如果用户有修改成员角色的权限,也可以通过智汀专业版或智汀App设置某一个用户的角色,即增加或删除 这意味着该用户的权限会变高或变低,取决于用户本身拥有的角色。 注意: SA创建者的角色不可更改,创建者有且只有一个管理员角色。如果您是SA创建者,请避免您扫描该SA的二维码,这会导致您失去管理员的角色。
(4)多角色
SA允许一个用户拥有多个不同的角色。这意味着您在生成邀请二维码或者设置用户角色时可以选择多个角色。一个SA用户总的权限由该用户的所有角色拥有的 权限决定。
(5)注意事项
  • 管理员角色的权限是不可修改的
  • SA创建者的角色不可更改,创建者有且只有一个管理员角色。如果您是SA创建者,请避免您扫描该SA的二维码,这会导致您失去管理员的角色。
3.权限
(1)说明
权限是SA用于判断用户是否有对设备、家庭/公司、房间/区域、场景、角色等功能操作的依据。用户具有的权限由其被分配的角色获得。每一个功能都有不同 的权限,但类似修改删除等权限是所有功能都具有的。
  • 与角色相关的权限
  1. 查看角色列表,允许用户查看该SA拥有的角色
  2. 新增角色,允许用户创建新的角色,并给该角色赋予权限
  3. 编辑角色,允许用户编辑角色名称和更改角色拥有的权限
  4. 删除角色,允许用户删除角色
  • 与场景相关的权限
  1. 新增场景,允许用户创建场景
  2. 删除场景,允许用户删除场景
  3. 修改和删除场景,允许用户删除场景或者修改场景的设置
  4. 控制场景,允许用户在场景的执行任务中选择控制场景
  • 与房间/区域相关的权限
  1. 添加房间/区域
  2. 调整顺序
  3. 修改房间名称
  4. 查看房间详情
  5. 删除房间
  • 与家庭/公司相关的权限
  1. 生成邀请二维码,允许用户邀请其他人进入该家庭
  2. 修改名称
  3. 修改成员角色,新增或减少某一成员拥有的角色
  4. 删除成员,尽管您拥有删除成员的权限,但是您仍然不能删除SA创建者这一成员
  • 与设备相关的权限
  1. 添加设备
  2. 删除设备,SA一旦被添加,任何人都不会拥有删除SA的权限。
  3. 修改设备,修改设备的权限包括修改设备的位置,名称等。
  4. 控制设备,不同的设备有不同的操作权限。eg:灯有开关,色温,色差灯控制权限,开关只有开关权限。
(2)注意事项
  • 场景的修改和控制不仅仅取决于用户是否拥有修改和控制场景的权限,还包括该用户是否有对场景中的设备操作项的控制权限。
    1. eg:如果您拥有控制场景A的权限,但是您没有场景A里面设备B的开关控制权限,则您同样没有控制该场景A的权限。修改场景也是如此。
  • 【智汀家庭云-开发指南Golang(用户模块)】一旦您在编辑角色页面选择了修改、删除、控制设备这些权限项,SA会默认将该家庭下的所有设备的所有权限项都赋予这个角色。
    1. eg: 您选择了删除设备控制项,则该角色拥有删除该SA所有设备的权限。我们建议您通过编辑角色的高级设置选项来选择您要赋予该角色的设备权限。

    推荐阅读