Commit graph

1745 commits

Author SHA1 Message Date
Dan McGee
a21739aae5 Add LastLogin column to Users table
Signed-off-by: Dan McGee <dan@archlinux.org>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-10-24 17:57:53 +02:00
Dan McGee
e6ecdcc835 Require DB handle for most user account functions
This affects login the most, where we save about 4 calls to db_connect()
by passing a single handle into functions where necessary.

Signed-off-by: Dan McGee <dan@archlinux.org>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-10-24 17:57:53 +02:00
Dan McGee
8dc7b37909 Remove a boatload of inline table styles
Replacing with CSS styles where appropriate. A previously unused CSS
style is tweaked in the stylesheet to match most of what was done via
non-CSS styling.

Signed-off-by: Dan McGee <dan@archlinux.org>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-10-24 17:57:52 +02:00
Dan McGee
10355ec959 Remove explicit utf8 declarations in table creation
The create database statement sets the default character set of the
database to UTF-8, so no need to do it down below.

Signed-off-by: Dan McGee <dan@archlinux.org>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-10-24 17:57:52 +02:00
Dan McGee
99a2bb81cf aurblup: update for pacman 4 revised libalpm API
Notable changes include the necessary handle object and the splitting
of provides and replaces into alpm_depend_t objects.

Signed-off-by: Dan McGee <dan@archlinux.org>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-10-24 17:57:52 +02:00
Dan McGee
d20f90ead3 aurblup: remove use of alpm_list_getdata()
This is not strictly necessry as listitem->data is public.

Signed-off-by: Dan McGee <dan@archlinux.org>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-10-24 17:57:51 +02:00
Dan McGee
156bfbddb9 aurblup: style cleanups
Always use two lines for if statements, use a character constant rather
than the 0 integer when NULL-terminating a string, and remove the
unnecessary NULL check before free(value)- free(NULL) is a no-op and
always safe.

Signed-off-by: Dan McGee <dan@archlinux.org>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-10-24 17:57:51 +02:00
Dan McGee
f5736ace65 aurblup: remove ';' from queries
The semicolons are not necessary when performing queries via the MySQL
API, so remove them.

Signed-off-by: Dan McGee <dan@archlinux.org>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-10-24 17:57:51 +02:00
Dan McGee
bd361242f9 Move SUPPORTED_LANGS out of config.inc.php
This has no real business being here, and is a pain to update when new
languages are shipped. Move it and the set_lang() function to
translator.inc.php instead so it doesn't overwhelm the user-configurable
settings file with static stuff.

Signed-off-by: Dan McGee <dan@archlinux.org>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-10-24 17:57:51 +02:00
Lukas Fleischer
795971bc80 RPC: Coerce numeric values into integers
Coerce following fields into integers to ensure json_encode() serializes
them as integers:

* ID
* CategoryID
* NumVotes
* OutOfDate
* FirstSubmitted
* LastModified

This means that there will be a minor API break. There's no better way
to do this properly, though. Fixes FS#25693.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-09-23 15:30:32 +02:00
Lukas Fleischer
04a0fd4748 RPC: Provide out-of-date timestamp
Convert the "OutOfDate" field to provide a timestamp instead of a
boolean flag in JSON results. We don't really care about backward
compatibility here, as most AUR helpers would break anyway when trying
to parse RPC responses after the data type overhaul that should come
with one of the following patches.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-09-23 14:05:41 +02:00
Lukas Fleischer
675b7e3d02 Merge branch 'maint' 2011-09-05 17:09:03 +02:00
Lukas Fleischer
e1687f1830 Update message catalog
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-09-05 17:02:38 +02:00
Lukas Fleischer
20b20c20f2 web/template/login_form.php: Escape the request URI
Reported-by: Thomas Bächler <thomas@archlinux.org>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-09-05 16:56:09 +02:00
Lukas Fleischer
1b63994b8d web/html/pkgsubmit.php: Deal with unset category ID
Do not move the package to the incoming package directory and fail to
create proper database entries if some AUR upload helper doesn't provide
a category. We got several failing constraints here, such as:

  Cannot add or update a child row: a foreign key constraint fails
  (`AUR`.`Packages`, CONSTRAINT `Packages_ibfk_1` FOREIGN KEY
  (`CategoryID`) REFERENCES `PackageCategories` (`ID`) ON DELETE NO
  ACTION)

Instead, default to "1" (which is "none", or "keep category" for
existing packages) if no category is supplied.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-09-05 16:47:59 +02:00
Lukas Fleischer
a00e5b040a Link to current page in the login bar HTTPs link
This is way more convenient if you follow a HTTP link. Implements
FS#25757.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-09-05 16:47:57 +02:00
Lukas Fleischer
e411ef1d80 Merge branch 'maint' 2011-08-22 08:35:18 +02:00
Lukas Fleischer
114edd9ff8 Provide more examples on the RPC info page
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-08-22 08:24:21 +02:00
Lukas Fleischer
53a31865f4 RPC: Fix info queries when using package IDs
Info queries using package IDs were no longer working due to commit
c6d84b3a8d, which introduced a table join
in process_query(), thus making the "ID" column ambiguous. Fix this by
explicitly specifying the table to use. Fixes FS#25696.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-08-22 08:17:26 +02:00
Lukas Fleischer
dad42297c7 Add missing __() to category info in package details
This makes the "Category" label as well as "Change category" button on
the package details page translatable. Fixes FS#25692.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-08-22 08:15:36 +02:00
Lukas Fleischer
fdddd76cbf UPGRADING: Fix rewrite rules
Do not attempt to rewrite "/packages/fo/foo/foo.tar.gz".

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-08-22 08:15:36 +02:00
Lukas Fleischer
b5d5687517 web/lib/translator.inc.php: Use vsprintf() in __()
Remove hacky substitution code from __() and use vsprintf() instead
which will deal with all sorts of format strings properly.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-08-20 20:28:47 +02:00
Lukas Fleischer
ee4b398033 Use "%s" instead of "%h" in format strings
Use the standard string type specifier instead of "%h" in format
strings. Both specifiers are treated equally in __() so we shouldn't
break anything here. This also allows us to replace the hacky
substitution algorithm in __() by vsprintf().

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-08-20 20:28:47 +02:00
Lukas Fleischer
72b657eb17 Release 1.9.0
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-08-20 18:38:34 +02:00
Lukas Fleischer
beafbfd6a0 Replace "el_GR" translation by "el"
We discussed this on aur-dev. We shouldn't specify a territory unless
translations are specific to a variant of the Greek language.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-08-20 18:27:43 +02:00
Lukas Fleischer
87fba89a33 Add Portuguese (Brazilian) translation
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-08-20 18:25:23 +02:00
Lukas Fleischer
26165f82de Translation updates from Transifex
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-08-20 17:09:51 +02:00
Lukas Fleischer
b695696093 UPGRADING: Add note on aurblup config changes
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-08-19 10:23:19 +02:00
Dan McGee
c69c44050e aurblup: Update config.h.proto
* Switch to x86_64 architecture by default
* Add more repositories (including multilib)
* Update default configuration path to include .php file extension

Signed-off-by: Dan McGee <dan@archlinux.org>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-08-19 10:21:14 +02:00
Lukas Fleischer
90063d7b98 Rebuild message catalog and translations
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-08-13 12:53:40 +02:00
Lukas Fleischer
ffa1a5a609 Add Finnish and Dutch translations
Thanks-to: Jesse Jaara <jesse.jaara@gmail.com>
Thanks-to: Jelle van der Waa <jelle@vdwaa.nl>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-08-13 12:45:29 +02:00
Lukas Fleischer
0167e1d7a3 Translation updates from Transifex
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-08-13 12:42:32 +02:00
Lukas Fleischer
19cc9c934b po/POTFILES: Fix library file paths
Regression introduced in 888db089c5.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-08-13 12:33:45 +02:00
Lukas Fleischer
f22c7beace po/Makefile: Fix version file path
We broke this in 888db089c5 when adding
the ".php" extension to all inclusion files. Seems like we forgot to do
this in the Makefile.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-08-13 12:31:02 +02:00
Lukas Fleischer
00e4e0294f Use secure and httponly session cookies
As discussed on the mailing list, enable "secure" and "httponly" for
session cookies to prevent them from being transferred over insecure
connections.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-08-12 00:09:24 +02:00
Lukas Fleischer
1c9db1d1f1 Add a configuration setting to disallow HTTP login
If this is enabled, do not show the login form and display a note
suggesting to switch to a secure connection if a user accesses the site
via HTTP.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-08-11 21:04:38 +02:00
Lukas Fleischer
a47f4915dc UPGRADING: Add note on backward compatible package URLs
Thanks-to: Dave Reisner <d@falconindy.com>
Thanks-to: Dan McGee <dan@archlinux.org>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-08-11 21:04:02 +02:00
Lukas Fleischer
43d28c8840 UPGRADING: Mention the upload directory transform script
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-08-11 16:17:09 +02:00
Dan McGee
45a50d4a66 Remove unnecessary atype and uid lookup from package_details()
These were never used in the function. Where they are used is in the
pkg_details.php template, so move them closer to their actual usage so
as not to confuse poor programmers such as myself.

Signed-off-by: Dan McGee <dan@archlinux.org>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-08-11 16:17:09 +02:00
Dan McGee
34fe0bec4c Use 'true' instead of 'True' everywhere
Signed-off-by: Dan McGee <dan@archlinux.org>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-08-11 16:17:09 +02:00
Dan McGee
5d74a994ff Make package creation and update atomic
Add BEGIN and COMMIT statements where it makes sense to do so. This
allows the entire package creation or update process to be atomic and
not be seen until it is complete.

Signed-off-by: Dan McGee <dan@archlinux.org>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-08-11 16:17:08 +02:00
Dan McGee
0ac74ed733 pkgfuncs.inc.php: allow all DB funcs to take handle arg
Allows handle reuse if one is available.

Signed-off-by: Dan McGee <dan@archlinux.org>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-08-11 16:17:08 +02:00
Dan McGee
242f7afb96 aur.inc.php: allow all functions using DB to take handle as arg
This prevents needless calls to db_connect() if we already have a
reference to a handle we can pass into a function. Although the current
underlying implementation using mysql_connect() will return the same
connection if all parameters are the same, this might not be true if we
switch to a more modern (e.g. PDO) interface.

In the face of safe transactions, it is extremely important all actions
are being taken over the same connection to the database.

Signed-off-by: Dan McGee <dan@archlinux.org>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-08-11 16:17:08 +02:00
Lukas Fleischer
87bdee60bc Allow for merging deleted packages into existing ones
Merge all comments and votes of deleted packages into another package if
the "Merge with" field is used. Duplicate votes (votes from a user who
already voted on the target package or voted on more than one of the
deleted packages) are discarded.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-08-11 16:17:07 +02:00
Lukas Fleischer
f481645e64 Add "mergepkgid" argument to pkg_delete()
This allows for merging comments and votes of deleted packages into
another one which is useful if a package needs to be renamed.

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
Signed-off-by: Dan McGee <dan@archlinux.org>
2011-08-11 16:17:07 +02:00
Lukas Fleischer
0ac8970b62 Rename package_exists() to pkgid_from_name()
Describe what this function actually does: Return the ID of a package
with a given name and return NULL if such a package doesn't exist.

The function name is chosen in a fashion similar to other functions from
"pkgfuncs.inc.php" (pkgname_from_id(), pkgnotify_from_sid(), ...).

Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-08-11 16:17:07 +02:00
Dan McGee
6ae2bc514f Add a upload directory transform script
This goes with the previous patch that moves uploads into segmented
subdirectories. To actually run, follow the DRYRUN instructions.

Signed-off-by: Dan McGee <dan@archlinux.org>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-08-10 15:23:00 +02:00
Dan McGee
9a79d2105e Segment the upload directory by package name prefix
This implements the following scheme:

* /packages/cower/ --> /packages/co/cower/
* /packages/j/     --> /packages/j/j/
* /packages/zqy/   --> /packages/zq/zqy/

We take up to the first two characters of each package name as a
intermediate subdirectory, and then the full package name lives
underneath that. Shorter named packages live in a single letter
directory.

Why, you ask? Well because earlier today the AUR hit 32,000 entries in
the unsupported/ directory, making new package uploads impossible. While
some might argue we shouldn't have so many damn packages in the repos,
we should be able to handle this case.

Why two characters instead of one? Our two biggest two-char groups, 'pe'
and 'py', both start with 'p', and have nearly 2000 packages each. Go
Python and Perl.

Still needed is a "move the existing data" script, as well as a set of
rewrite rules for those wishing to preserve backward compatible URLs for
any helper programs doing the wrong thing and relying on them.

Signed-off-by: Dan McGee <dan@archlinux.org>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-08-10 14:34:07 +02:00
Dan McGee
1f79258e81 Allow SQL_DEBUG to be undefined
We shouldn't require this as it is a new config parameter and it causes
PHP warnings to be spewed everywhere.

Signed-off-by: Dan McGee <dan@archlinux.org>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-08-10 14:34:07 +02:00
Dan McGee
1e20af9aed scripts/cleanup: use native PHP only
No need to shell out to the system here. Also fix the script so it
actually works.

Signed-off-by: Dan McGee <dan@archlinux.org>
Signed-off-by: Lukas Fleischer <archlinux@cryptocrack.de>
2011-08-10 14:34:06 +02:00