Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
6170007
Тип пользователя при создании аккаунта
KateGL Jan 10, 2015
77b5777
Разделение на сообщества и людей : начало
KateGL Jan 10, 2015
e3f5fa3
Разделение на сообщества и людей : 2
KateGL Jan 10, 2015
324375e
Исправление ошибки со связью community_membership при удалении User
KateGL Jan 10, 2015
154a5de
контроллеры для people и community пока без тестов. Исправлена ошибка…
KateGL Jan 11, 2015
7c526cb
редактирование и отображение данных для Person
KateGL Jan 11, 2015
3625ad3
редактирование и отображение данных для Community
KateGL Jan 11, 2015
4509f67
Тесты для users, пока не понимаю почему не создается нормально User д…
KateGL Jan 11, 2015
33251b7
Тесты для users правильные. Убрала paginate из gemfile, вдруг он урон…
KateGL Jan 11, 2015
f52e329
Тесты для Person и Community
KateGL Jan 11, 2015
736b74a
контроллеры, вью и тесты для CommunityMemberships
KateGL Jan 11, 2015
fab1f95
Тесты для community_membership, контроллеры, вью и тесты для UserRela…
KateGL Jan 11, 2015
41e08b9
все для Post
KateGL Jan 11, 2015
d917bee
Рефаторинг по замечаниям к пул-реквесту
KateGL Jan 14, 2015
a3504c7
Merge pull request #17 from SerafimD/dev_new
SerafimD Jan 14, 2015
f7c23e3
Мёрдж двух основных веток.
SerafimD Jan 14, 2015
55a13a0
bug fix for people_controller
SerafimD Jan 15, 2015
3aba2f9
update README
SerafimD Jan 15, 2015
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,8 @@ gem 'sdoc', '~> 0.4.0', group: :doc
#auth
gem 'devise'
gem 'cancancan', '~> 1.7'
#gem 'will_paginate','~>3.0.5'

# Use ActiveModel has_secure_password
# gem 'bcrypt', '~> 3.1.7'

Expand Down
8 changes: 7 additions & 1 deletion README.rdoc
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,11 @@
2) Семуков Илья
3) Синельников Дмитрий

Хероку :
Хероку (крайняя версия):
https://rubybursa-social.herokuapp.com/


Реализованный функционал:
1) Регистрация пользователя/сообщества
2) Возможностью менять информацию в профиле
3) Возможность отправлять и получать сообщения от зарегистрированный пользователей
10 changes: 10 additions & 0 deletions app/controllers/application_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,14 @@ class ApplicationController < ActionController::Base
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception
#before_action :authenticate_user!
before_filter :configure_permitted_parameters, if: :devise_controller?

protected

def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) {|u| u.permit(:email, :password, :kind, :name)}
devise_parameter_sanitizer.for(:account_update){|u| u.permit(:email, :password, :current_password, :name)}

end
end
53 changes: 53 additions & 0 deletions app/controllers/communities_controller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
class CommunitiesController < ApplicationController
before_action :find_current_community, only: [:show, :edit, :update]
before_filter :authenticate_user!

def index
@communities = Community.all
end

def show

end

def edit
render :new unless @community
end


def update
if @community.update(community_params)
render :show
else
render :edit
end
end


def new
@community = Community.new
end

def create
@community = Community.new(community_params)
@community.user_id = current_user.id
if @community.save
render :show
else
render :new
end
end


private


def community_params
params.require(:community).permit(:subject)
end


def find_current_community
@community = Community.where(id: params[:id]).take
end
end
45 changes: 45 additions & 0 deletions app/controllers/community_memberships_controller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
class CommunityMembershipsController < ApplicationController
before_action :find_current_community_membership, only: [:show, :destroy]
before_filter :authenticate_user!

def index

end

def show

end


def new
@community_membership = CommunityMembership.new
end

def create
@community_membership = CommunityMembership.new(community_params)
@community_membership.community_id = current_user.id
if @community_membership.save
render :show
else
render :new
end
end

def destroy
community_id = @community_membership.community_id
@community_membership.destroy
redirect_to url_for(:controller => :communities, :action => :show, :id => community_id)
end

private


def community_membership_params
params.require(:community_membership).permit(:user_id)
end


def find_current_community_membership
@community_membership = CommunityMembership.where(id: params[:id]).take
end
end
27 changes: 27 additions & 0 deletions app/controllers/messages_controller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
class MessagesController < ApplicationController

before_action :authenticate_user!

def index
@message_recieve = []
@message_send = []
current_user.recieved_messages.each {|t| @message_recieve << [User.find(t.user_id_to).name, t.message_text] }
current_user.send_messages.each {|t| @message_send << [User.find(t.user_id_from).name, t.message_text] }


@users = User.all

if request.method == "POST"
mes = Message.new
mes.message_text = params[:message]
current_user.send_messages << mes
User.find((params[:recive_id])).recieved_messages << mes
@test = params[:recive_id]
mes.save
redirect_to :action => :index
end
end



end
52 changes: 52 additions & 0 deletions app/controllers/people_controller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
class PeopleController < ApplicationController
before_action :find_current_person, only: [:show, :edit, :update]
before_filter :authenticate_user!

def index
@people = Person.all
end

def show

end

def edit
render :new unless @person
end

def update
if @person.update(person_params)
render :show
else
render :edit
end
end

def new
@person = Person.new
end

def create
@person = Person.new(person_params)
@person.user_id = current_user.id
if @person.save
redirect_to url_for(:controller => :people, :action => :show, :id => @person.id)
else
render :new
end
end


private


def person_params
params.require(:person).permit(:surename, :date_of_birth)
end

def find_current_person
@person = Person.where(id: params[:id]).take
end


end
55 changes: 55 additions & 0 deletions app/controllers/posts_controller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
class PostsController < ApplicationController
before_action :find_current_post, only: [:show, :edit, :update, :destroy]
before_filter :authenticate_user!

def index

end

def show

end

def edit
render :new unless @post
end

def update
if @post.update(post_params)
render :show
else
render :edit
end
end

def new
@post = Post.new
end

def create
@post = Post.new(post_params)
@post.user_id = current_user.id
if @post.save
render :show
else
render :new
end
end

def destroy
@post.destroy
redirect_to user_root_path
end

private


def post_params
params.require(:post).permit(:content, :publish_date)
end

def find_current_post
@post = Post.where(id: params[:id]).take
end

end
45 changes: 45 additions & 0 deletions app/controllers/user_relations_controller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
class UserRelationsController < ApplicationController
before_action :find_current_user_relation, only: [:show, :destroy]
before_filter :authenticate_user!

def index

end

def show

end


def new
@user_relation = UserRelation.new
end

def create
@user_relation = CommunityMembership.new(user_relation_params)
@user_relation.user_owner_id = current_user.id
if @user_relation.save
rednder :show
else
render :new
end
end

def destroy
@user_relation.destroy
redirect_to user_root_path
end

private


def user_relation_params
params.require(:community_membership).permit(:user_rel_id)
end


def find_current_user_relation
@user_relation = UserRelation.where(id: params[:id]).take
end

end
38 changes: 37 additions & 1 deletion app/controllers/users_controller.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,40 @@
class UsersController < ApplicationController

def profile
end
end

def show_profile
if current_user == nil
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Замечания отписал в #13

redirect_to new_user_session_path
return
end

user = User.where(id: current_user.id).take
if user == nil
redirect_to root_path
return
end

if user.person?
person = Person.where(user_id: user.id).take
if person == nil
redirect_to url_for(:controller => :people, :action => :new)
else
redirect_to url_for(:controller => :people, :action => :show, :id => person.id)
end

elsif user.community?
community = Community.where(user_id: user.id).take
if community == nil
redirect_to url_for(:controller => :communities, :action => :new)
else
redirect_to url_for(:controller => :communities, :action => :show, :id =>community.id)
end
else
redirect_to root_path
end


end

end
1 change: 1 addition & 0 deletions app/controllers/welcome_controller.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
class WelcomeController < ApplicationController
def index

end
end
9 changes: 7 additions & 2 deletions app/models/community.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
class Community < ActiveRecord::Base
has_one :user, :foreign_key => "id"
has_many :users, through: :community_memberships, dependent: :destroy
belongs_to :user, :foreign_key => "user_id"
has_many :users, through: :community_memberships#, dependent: :destroy
has_many :community_memberships, dependent: :destroy

def user
User.where(id: self.user_id).take
end
end
12 changes: 10 additions & 2 deletions app/models/community_membership.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,12 @@
class CommunityMembership < ActiveRecord::Base
belongs_to :user
belongs_to :community
belongs_to :user, :foreign_key => "user_id"
belongs_to :community, :foreign_key => "community_id"

def user
User.where(id: self.user_id).take
end

def community
Community.where(id: self.community_id).take
end
end
Loading