]> git.ipfire.org Git - people/shoehn/ipfire.org.git/blame - webapp/handlers_admin.py
Remove obsolete/broken/unused code.
[people/shoehn/ipfire.org.git] / webapp / handlers_admin.py
CommitLineData
940227cb
MT
1#!/usr/bin/python
2
940227cb
MT
3import tornado.web
4
5from handlers_base import *
6
27066195 7import backend
940227cb
MT
8
9class AdminBaseHandler(BaseHandler):
27066195
MT
10 @property
11 def accounts(self):
12 return backend.Accounts()
13
14 @property
15 def planet(self):
16 return backend.Planet()
17
60024cc8
MT
18 @property
19 def downloads(self):
20 return backend.Downloads()
21
940227cb
MT
22 def get_current_user(self):
23 return self.get_secure_cookie("account")
24
25
26class AdminLoginHandler(AdminBaseHandler):
27 def get(self):
28 self.render("admin-login.html")
29
30 def post(self):
31 account = self.accounts.search(self.get_argument("name"))
32 if not account:
33 raise tornado.web.HTTPError(403)
34
35 if account.check_password(self.get_argument("password")):
36 self.set_secure_cookie("account", account.uid)
37 else:
38 raise tornado.web.HTTPError(403)
39
40 self.redirect("/")
41
42
43class AdminLogoutHandler(AdminBaseHandler):
44 def get(self):
45 self.clear_cookie("account")
46 self.redirect("/")
47
48
49class AdminIndexHandler(AdminBaseHandler):
50 @tornado.web.authenticated
51 def get(self):
52 self.render("admin-index.html")
53
54
55class AdminApiPlanetRenderMarkupHandler(AdminBaseHandler):
56 @tornado.web.authenticated
0e824faf 57 def post(self):
940227cb
MT
58 text = self.get_argument("text", "")
59
60 # Render markup
0e824faf
MT
61 output = {
62 "html" : self.planet.render(text),
63 }
64 self.write(output)
940227cb
MT
65 self.finish()
66
67
68class AdminPlanetHandler(AdminBaseHandler):
69 @tornado.web.authenticated
70 def get(self):
27066195 71 entries = self.planet.get_entries(limit=100)
940227cb
MT
72
73 self.render("admin-planet.html", entries=entries)
74
75
76class AdminPlanetComposeHandler(AdminBaseHandler):
77 @tornado.web.authenticated
78 def get(self, id=None):
27066195
MT
79 entry = backend.PlanetEntry()
80
940227cb 81 if id:
27066195 82 entry = self.planet.get_entry_by_id(id)
940227cb
MT
83
84 self.render("admin-planet-compose.html", entry=entry)
85
86 @tornado.web.authenticated
87 def post(self, id=None):
88 id = self.get_argument("id", id)
940227cb 89
27066195 90 entry = backend.PlanetEntry()
940227cb 91
27066195
MT
92 if id:
93 entry = self.planet.get_entry_by_id(id)
940227cb 94
27066195
MT
95 entry.set("title", self.get_argument("title"))
96 entry.set("markdown", self.get_argument("markdown"))
97 entry.set("author_id", self.current_user)
940227cb 98
27066195
MT
99 if id:
100 self.planet.update_entry(entry)
940227cb 101 else:
27066195 102 self.planet.save_entry(entry)
940227cb
MT
103
104 self.redirect("/planet")
105
106
107class AdminPlanetEditHandler(AdminPlanetComposeHandler):
108 pass
109
110
111class AdminAccountsBaseHandler(AdminBaseHandler):
27066195 112 pass
940227cb
MT
113
114
115class AdminAccountsHandler(AdminAccountsBaseHandler):
116 @tornado.web.authenticated
117 def get(self):
27066195 118 accounts = self.accounts.list()
940227cb
MT
119 self.render("admin-accounts.html", accounts=accounts)
120
121
122class AdminAccountsEditHandler(AdminAccountsBaseHandler):
123 @tornado.web.authenticated
124 def get(self, id):
125 account = self.accounts.search(id)
126 if not account:
127 raise tornado.web.HTTPError(404)
128
129 self.render("admin-accounts-edit.html", account=account)
130
131
132class AdminAccountsDeleteHandler(AdminAccountsBaseHandler):
133 @tornado.web.authenticated
134 def get(self, id):
135 account = self.accounts.search(id)
136 if not account:
137 raise tornado.web.HTTPError(404)
138
139 self.accounts.delete(id)
140 self.redirect("/accounts")
141
142
143class AdminMirrorsBaseHandler(AdminBaseHandler):
940227cb
MT
144 @property
145 def mirrors(self):
27066195 146 return backend.Mirrors()
940227cb
MT
147
148
149class AdminMirrorsHandler(AdminMirrorsBaseHandler):
150 @tornado.web.authenticated
151 def get(self):
152 mirrors = self.mirrors.list()
153
154 self.render("admin-mirrors.html", mirrors=mirrors)
155
156
157class AdminMirrorsUpdateHandler(AdminMirrorsBaseHandler):
158 @tornado.web.authenticated
159 def get(self):
160 self.mirrors.check_all()
161 self.redirect("/mirrors")
162
163
164class AdminMirrorsCreateHandler(AdminMirrorsBaseHandler):
165 @tornado.web.authenticated
166 def get(self, id=None):
167 if id:
168 mirror = self.db.get("SELECT * FROM mirrors WHERE id = '%s'", int(id))
169 else:
170 mirror = tornado.database.Row(
171 id="",
172 hostname="",
173 owner="",
174 location="",
175 path="/",
176 releases="Y",
177 pakfire2="Y",
178 pakfire3="Y",
179 disabled="N"
180 )
181
182 self.render("admin-mirrors-create.html", mirror=mirror)
183
184 @tornado.web.authenticated
185 def post(self, id=None):
186 args = tornado.database.Row()
187 for key in ("id", "hostname", "owner", "location", "path", "releases",
188 "pakfire2", "pakfire3", "disabled"):
189 args[key] = self.get_argument(key, "")
190
191 if args.id:
192 if not self.mirrors.get(args.id):
193 raise tornado.web.HTTPError(404)
194
195 #self.db.execute("""UPDATE mirrors SET
196 # hostname = %s, owner = %s, location = %s, path = %s, mirror = %s,
197 # pakfire2 = %s, pakfire3 = %s, disabled = %s
198 # WHERE id = %s""", args.hostname, args.owner, args.location,
199 # args.path, args.mirror, args.pakfire2, args.pakfire3, args.disabled,
200 # args.id)
201 self.db.update("mirrors", args.id, **args)
202
203 else:
204 #self.db.execute("""INSERT INTO
205 # mirrors(hostname, owner, location, path, mirror, pakfire2, pakfire3, disabled)
206 # VALUES(%s, %s, %s, %s, %s, %s, %s, %s)""", args.hostname, args.owner,
207 # args.location, args.path, args.mirror, args.pakfire2, args.pakfire3, args.disabled)
208 self.db.insert("mirrors", **args)
209
210 # Update database information
211 self.mirrors.check_all()
212
213 self.redirect("/mirrors")
214
215
216class AdminMirrorsEditHandler(AdminMirrorsCreateHandler):
217 pass
218
219
220class AdminMirrorsDeleteHandler(AdminMirrorsBaseHandler):
221 @tornado.web.authenticated
222 def get(self, id):
223 self.db.execute("DELETE FROM mirrors WHERE id=%s", id)
224 self.db.execute("DELETE FROM mirror_files WHERE mirror=%s", id)
225 self.redirect("/mirrors")
226
227
228class AdminMirrorsDetailsHandler(AdminMirrorsBaseHandler):
229 @tornado.web.authenticated
230 def get(self, id):
231 mirror = self.mirrors.get(id)
232 if not mirror:
233 raise tornado.web.HTTPError(404)
234
235 self.render("admin-mirrors-details.html", mirror=mirror)
236
237
238class AdminNewsBaseHandler(AdminBaseHandler):
239 @property
240 def news(self):
241 return self.backend.news
242
243
244class AdminNewsHandler(AdminNewsBaseHandler):
245 @tornado.web.authenticated
246 def get(self):
247 news = self.news.list()
248
249 self.render("admin-news.html", news=news)
250
251
252class AdminNewsCreateHandler(AdminNewsBaseHandler):
253 @tornado.web.authenticated
254 def get(self, id=None):
255 # if XXX
256
257
258 self.render("admin-news-create.html", news=news)
259
260
261class AdminNewsEditHandler(AdminNewsCreateHandler):
262 pass
60024cc8
MT
263
264
265class AdminDownloadsHandler(AdminBaseHandler):
266 @tornado.web.authenticated
267 def get(self):
268 self.render("admin-downloads.html",
269 downloads_total = self.downloads.total,
270 downloads_today = self.downloads.today,
271 downloads_yesterday = self.downloads.yesterday,
272 downloads_locations_today = self.downloads.get_countries("today"),
273 downloads_locations_total = self.downloads.get_countries(),
274 )
275
276
277class AdminDownloadsMirrorsHandler(AdminBaseHandler):
278 @tornado.web.authenticated
279 def get(self):
280 self.render("admin-downloads-mirrors.html",
281 mirror_load_total = self.downloads.get_mirror_load(),
282 mirror_load_today = self.downloads.get_mirror_load("today"),
283 )