Last active
August 26, 2015 18:05
-
-
Save eternal44/db8b1045c1adfc242b84 to your computer and use it in GitHub Desktop.
lity.herokuapp.com - complex authorizations
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
module GroupHelper | |
def admin(group) | |
true if group.memberships.admin.where(user_id: current_user.id).present? | |
end | |
def regular(group) | |
true if group.memberships.member.where(user_id: current_user.id).present? | |
end | |
end |
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
class Membership < ActiveRecord::Base | |
belongs_to :user | |
belongs_to :group | |
validates :user_id, presence: true | |
validates :group_id, presence: true | |
validates :group_role, inclusion: { in: %w(Admin Regular), | |
messge: "%(value) is not a valid membership type" } | |
# used in group_helper.rb | |
scope :admin, -> { where(group_role: 'Admin') } | |
scope :member, -> {where(group_role: 'Admin' || 'Regular' )} | |
def admin? | |
group_role == "Admin" | |
end | |
def regular? | |
group_role == "Admin" || "Regular" | |
end | |
end |
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
<div class="container"> | |
<h1><%= @group.group_name %></h1> | |
<% if admin(@group) %> | |
<%= link_to 'Manage Group Memberships', edit_group_path(@group) %> | | |
<% end %> | |
<%= link_to 'Back', :back %> | |
<div class="row"> | |
<% if regular(@group) %> | |
<%= render partial: "archives/form" %> | |
<% end %> | |
<% if @membership.present? %> | |
<div class="pull-left"> | |
<h3>Members in the group</h3> | |
<% @membership.each do |membership| %> | |
<%= membership.user.first_name %> | |
<%= membership.user.last_name %> | |
- | |
<%= membership.group_role %> | |
<%= link_to 'Show', user_path(membership.user.id) %> | |
<% if admin(@group) %> | |
<%= link_to ' | Edit Group Role', edit_group_membership_path(@group, membership) %> | |
<% end %> | |
</br> | |
<% end %> | |
</div> | |
<% end %> | |
</div> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment