본문으로 바로가기

[코드스터디] 4주차

category 잡동사니 2015. 6. 25. 00:06

@users = User.all -> 유저 정보를 모두 뽑아서 users에 넣어라


admin.erb 페이지 -> user를 출력 하려면 

<% @users.each do |x| %>
  <%= x.user_email %>, <%= x.user_password %><br>

<% end %>

--------------------------------------

<!DOCTYPE html>
<html>
<body>
<p>관리자페이지입니다.</p>
<ul> 
<% @users.each do |x| %>
 <li>(->리스트만들기)<%= x.user_email %>, <%= x.user_password %>
  <a href="/user_delete/<%= x.id %>">[x]</a>
</li>

<% end %>
</ul>
</body>
</html>

app.rb 파일에서

get '/user_delete/:user_id' do -> /:user_id는 각각 회원의 delete페이지로 간다. 그리고 각각의 페이지로 가면 삭제되고 바로 어드민으로 리다이렉트 
 user = user.first(:id => params[:user_id])
 user.destroy
 redirect'/admin'
end

암호화 -> /join_process있는 쪽으로

아이디 다음 비밀번호 사이에

md5_password = Digest::MD5.hexdigest(params[:user_password])


따라서 /login_process에서도 들어오는 값을 암호화 시켜서 비교하게 한다.

md5_user_password = Digest::MD5.hexdigest(params[:user_password])

if database_user.user_password == md5_user_password 


user_level을 설정하여 관리자의 레벨을 설정한다.


sinatra datatype : sinatra datamapper datatype등 검색


user = User.first(:user_email => session[:email])

세션 정보를 바탕으로 유저 이메일에 있는걸 뽑은 다음에 user에 넣겠다.

if (!user.nul?) and (user.admin == true)

@users = User.all
erb :admin
else
redirect '/'
end
end

admin 계정에 특수한 값을 주고. 어드민이 맞는데 .admin으로 오면 유저목록 주고 아니면 리다이렉트 시켜라

get '/user_delete/:user_id' do
user = User.first(:user_email => session[:email])
if (!user.nil?) and (user.admin == true)
user = User.first(:id => params[:user_id])
user.destroy
redirect '/admin'
 else
redirect '/'
end
end

Sinatra filter 
-> before filter : 특정 URL이 실행되기전 무조건 실행
After filter : URL 실행후 무조건 걸어라.

before filter로 /admin, /user_delete 묶은 다음에 거기서 

user = User.first(:user_email => session[:email])얘를 실행해보고 admin이 맞으면 그냥 진행
아니면 '/'로 redirect




'잡동사니' 카테고리의 다른 글

Codecademy - Python. battleship game  (0) 2015.10.18
[코드스터디] 5주차  (0) 2015.06.25
[코드스터디] 3주차  (0) 2015.06.25
[코드스터디] 2주차  (0) 2015.06.25
[코드스터디] 1주차  (0) 2015.06.25