Advertisement
Guest User

Untitled

a guest
Feb 19th, 2019
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.79 KB | None | 0 0
  1. require 'sinatra'
  2. require 'sinatra/activerecord'
  3.  
  4.  
  5. ActiveRecord::Base.establish_connection(
  6. :adapter => 'sqlite3',
  7. :database => 'wiki.db'
  8. )
  9.  
  10. class User < ActiveRecord::Base
  11. validates :username, presence: true, uniqueness: true
  12. validates :password, presence: true
  13. end
  14.  
  15.  
  16. $myinfo = "Dinis Dimitris"
  17.  
  18. @info = ""
  19. @letter_count = 0
  20. @word_count = 0
  21. def _word_count(filename)
  22. word_count = 0
  23. y = File.open(filename,"r")
  24. y.each do |line|
  25. splitted = line.split
  26. splitted.each do
  27. word_count = word_count + 1
  28. end
  29. @word_count = word_count
  30. end
  31. end
  32. def _letter_count(filename)
  33. count = 0
  34. f = File.open(filename,"r")
  35. f.each do |line|
  36.  
  37. word = line.scan /\w/
  38. word.each do
  39. count = count + 1
  40.  
  41.  
  42.  
  43. end
  44. end
  45. @letter_count = count
  46.  
  47. end
  48.  
  49.  
  50. def readFile(filename)
  51. info = ""
  52. file = File.open(filename)
  53. file.each do |line|
  54. info = info + line
  55. end
  56. file.close
  57. $myinfo = info
  58. end
  59.  
  60. def deletefile(filename)
  61. file = File.open(filename)
  62. file.each do |line|
  63. file.delete(line)
  64. end
  65.  
  66. file.close
  67. end
  68.  
  69. helpers do
  70. def protected!
  71. if authorized?
  72. return
  73. end
  74. redirect '/denied'
  75. end
  76.  
  77. def user_protected!
  78. if user_authorized?
  79. return
  80. end
  81. redirect '/denied'
  82. end
  83.  
  84. def authorized?
  85. if $credentials != nil
  86. @Userz = User.where(:username => $credentials[0]).to_a.first
  87. if @Userz
  88. if @Userz.admin == true
  89. return true
  90. else
  91. return false
  92. end
  93. else
  94. return false
  95. end
  96. end
  97. end
  98. def user_authorized?
  99. if $credentials != nil
  100. @Userz = User.where(:username => $credentials[0]).to_a.first
  101. if @Userz
  102. if @Userz.edit == true
  103. return true
  104. else
  105. return false
  106. end
  107. else
  108. return false
  109. end
  110. end
  111. end
  112. end
  113.  
  114. get '/' do
  115. readFile("wiki.txt")
  116. @info = " " + $myinfo
  117. _letter_count("wiki.txt")
  118. _word_count("wiki.txt")
  119.  
  120.  
  121.  
  122. erb :home
  123. end
  124.  
  125.  
  126. get '/about' do
  127.  
  128.  
  129.  
  130. erb :about
  131. end
  132. get '/create' do
  133.  
  134.  
  135.  
  136. erb :create
  137. end
  138.  
  139. get '/edit' do
  140. user_protected!
  141.  
  142. info = ""
  143. file = File.open("wiki.txt")
  144. file.each do |line|
  145. info = info + line
  146. end
  147. file.close
  148. @info = info
  149.  
  150.  
  151.  
  152. erb :edit
  153.  
  154. end
  155.  
  156. put '/edit' do
  157. user_protected!
  158. info = "#{params[:message]}"
  159. @info = info
  160. file = File.open("wiki.txt", "w")
  161. file.puts @info
  162. file.close
  163. redirect '/'
  164.  
  165. erb :edit
  166. end
  167. post '/reset' do
  168. file = File.open("wiki.txt", "w")
  169. smth = " "
  170. file.puts smth
  171. file.close
  172. redirect '/'
  173.  
  174. erb :edit
  175. end
  176.  
  177. get '/login' do
  178. erb :login
  179. end
  180.  
  181. post '/login' do
  182. $credentials = [params[:username],params[:password]]
  183. @Users = User.where(:username => $credentials[0]).to_a.first
  184. if @Users
  185. if @Users.password == $credentials[1]
  186. redirect '/'
  187. else
  188. $credentials = [' ',' ']
  189. redirect '/wrongaccount'
  190. end
  191. else
  192. $credentials = [' ',' ']
  193. redirect '/wrongaccount'
  194. end
  195. end
  196. get '/wrongaccount' do
  197. erb :wrongaccount
  198. end
  199. get '/createaccount' do
  200. erb :createaccounts
  201. end
  202. post '/createaccount' do
  203. n = User.new
  204. n.username = params[:username]
  205. n.password = params[:password]
  206. if n.username == "Admin" and n.password == "Password"
  207. n.edit = true
  208. n.admin = true
  209. end
  210. n.save
  211. redirect "/"
  212. end
  213. get '/logout' do
  214. $credentials = [' ',' ']
  215. redirect '/'
  216. end
  217.  
  218.  
  219. get '/notfound' do
  220. erb :notfound
  221. end
  222. get '/noaccount' do
  223. erb :nonaccount
  224. end
  225. get '/denied' do
  226. erb :denied
  227. end
  228. put '/user/:uzer' do
  229. n = User.where(:username => params[:uzer]).to_a.first
  230. n.edit = params[:edit] ? 1 : 0
  231. n.save
  232. end
  233. get '/user/delete/:uzer' do
  234. n = User.where(:username => params[:uzer]).to_a.first
  235. if n.username == "Admin"
  236. erb :denied
  237. else
  238. n.destroy
  239. @list2 = User.all.sort_by { |u| [u.id] }
  240. erb :admincontrols
  241. end
  242. end
  243. get '/admincontrols' do
  244. protected!
  245. @list2 = User.all.sort_by { |u| [u.id] }
  246. erb :admincontrols
  247. end
  248.  
  249.  
  250. get '/admincontrols' do
  251. protected!
  252. @list2 = User.all.sort_by { |u| [u.id] }
  253. erb :admincontrols
  254. end
  255.  
  256.  
  257. not_found do
  258. status 404
  259. redirect '/notfound'
  260. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement