我在申请中了解teams
。现在如果我去团队的节目页面,当前团队的ID就在params中,应该如此。但是任何用户都可以访问任何团队,因为如果我将url更改为另一个现有团队,它将带我到那里。我想授权当前用户的网址。我怎样才能在凤凰城实现这一目标?
我目前正在使用Coherence进行身份验证。
注意:我意识到我没有显示任何代码示例,如果我有任何代码示例,我会的。说实话,我只是想指向正确的方向。我完全迷失了如何实现这一目标。
TEAMS
belongs_to USER
:: USERS
have_many TEAMS
答案 0 :(得分:1)
关系是has_many:users和belongs_to team
然后你可以像这样检查
def user_is_member?(team_id, user_id) do
user = Repo.get(User, user_id)
team = Repo.get(Team, user.team_id)
case team.id == team_id do
true ->
team
_ ->
false
end
end
您可以将此用于授权。对于url,您可以检查可能对您有帮助的子路径。
答案 1 :(得分:0)
假设您将当前用户存储在current_user
中,您可以使用:
query = from team in Teams, where: team.user_id == ^current_user.id
Repo.get!(query, team_id)
或者,您可以使用Repo.get_by!
:
Repo.get_by!(Team, user_id: current_user.id, id: team_id)