Last active
March 17, 2021 16:33
-
-
Save baldwindavid/340cc6f0070d93b63f8ea429adbf0b6b to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
############################################################ | |
# APP ROLES | |
############################################################ | |
def insert_app_super_admin_role, do: insert(:super_admin) |> Roles.role_for() | |
def insert_app_admin_role, do: insert(:admin) |> Roles.role_for() | |
def insert_app_marketer_role, do: insert(:marketer) |> Roles.role_for() | |
def insert_app_user_role, do: insert(:user) |> Roles.role_for() | |
def insert_all_app_roles, do: insert_app_roles(@roles) | |
def insert_app_marketer_or_better_roles, | |
do: insert_app_roles([:marketer, :super_admin]) | |
def insert_app_admin_or_better_roles, | |
do: insert_app_roles([:admin, :marketer, :super_admin]) | |
def insert_worse_than_app_super_admin_roles, | |
do: insert_app_roles([:member, :marketer, :admin]) | |
def insert_worse_than_app_marketer_roles, do: insert_app_roles([:member, :admin]) | |
def insert_worse_than_app_admin_roles, do: insert_app_roles([:member]) | |
defp insert_app_roles(role_name_or_names) do | |
role_name_or_names | |
|> Enum.map(&insert(&1)) | |
|> Enum.map(users, &Roles.role_for/1) | |
end | |
############################################################ | |
# PROPERTY ROLES | |
############################################################ | |
def insert_property_manager_or_better_roles_of(property) do | |
[ | |
insert_property_manager_role_of(property) | |
] | |
end | |
def insert_property_viewer_or_better_roles_of(property) do | |
[ | |
insert_property_manager_role_of(property), | |
insert_property_viewer_role_of(property) | |
] | |
end | |
def insert_worse_than_property_manager_roles_of(property) do | |
[ | |
insert_property_viewer_role_of(property) | |
] | |
end | |
def insert_worse_than_property_manager_roles do | |
[ | |
insert_property_viewer_role() | |
] | |
end | |
def insert_all_property_roles do | |
[ | |
insert_property_manager_role(), | |
insert_property_viewer_role() | |
] | |
end | |
def insert_all_property_roles_of(property) do | |
[ | |
insert_property_manager_role_of(property), | |
insert_property_viewer_role_of(property) | |
] | |
end | |
def insert_property_manager_role_of(property) do | |
manager_of_property = insert(:user) | |
insert(:property_manager, property: property, user: manager_of_property) | |
Roles.role_for(manager_of_property) | |
end | |
def insert_property_manager_role do | |
manager_of_property = insert(:user) | |
insert(:property_manager, user: manager_of_property) | |
Roles.role_for(manager_of_property) | |
end | |
def insert_property_viewer_role do | |
viewer_of_property = insert(:user) | |
insert(:property_permission, user: viewer_of_property, name: :viewer) | |
Roles.role_for(viewer_of_property) | |
end | |
def insert_property_viewer_role_of(property) do | |
viewer_of_property = insert(:user) | |
insert(:property_permission, property: property, user: viewer_of_property, name: :viewer) | |
Roles.role_for(viewer_of_property) | |
end | |
############################################################ | |
# ACCOUNT ROLES | |
############################################################ | |
def insert_account_admin_role_of(account) do | |
account_admin = insert(:user) | |
insert(:account_admin_membership, account: account, user: account_admin) | |
Roles.role_for(account_admin) | |
end | |
def insert_account_admin_role do | |
account_admin = insert(:user) | |
insert(:account_admin_membership, user: account_admin) | |
Roles.role_for(account_admin) | |
end | |
def insert_account_member_role_of(account) do | |
account_member = insert(:user) | |
insert(:membership, user: account_member, account: account) | |
Roles.role_for(account_member) | |
end | |
def insert_account_member_role do | |
account_member = insert(:user) | |
insert(:membership, user: account_member) | |
Roles.role_for(account_member) | |
end | |
def insert_all_account_roles do | |
[ | |
insert_account_member(), | |
insert_account_admin_role() | |
] | |
end | |
def insert_all_account_roles_of(account) do | |
[ | |
insert_account_member_role_of(account), | |
insert_account_admin_role_of(account) | |
] | |
end | |
def insert_account_member_or_better_roles_of(account) do | |
[ | |
insert_account_member_role_of(account), | |
insert_account_admin_role_of(account) | |
] | |
end | |
def insert_account_member_or_better_roles do | |
[ | |
insert_account_member, | |
insert_account_admin_role | |
] | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment