diff options
-rw-r--r-- | mediagoblin/plugins/httpapiauth/__init__.py | 58 | ||||
-rw-r--r-- | mediagoblin/static/css/base.css | 31 | ||||
-rw-r--r-- | mediagoblin/static/js/header_dropdown.js | 30 | ||||
-rw-r--r-- | mediagoblin/templates/mediagoblin/base.html | 21 | ||||
-rw-r--r-- | mediagoblin/templates/mediagoblin/root.html | 9 | ||||
-rw-r--r-- | mediagoblin/templates/mediagoblin/user_pages/user.html | 6 | ||||
-rw-r--r-- | mediagoblin/themes/airy/assets/css/airy.css | 14 | ||||
-rw-r--r-- | mediagoblin/themes/airy/assets/images/empty_dots.png | bin | 0 -> 205 bytes | |||
-rw-r--r-- | mediagoblin/themes/airy/assets/images/icon_feed.png | bin | 0 -> 473 bytes | |||
-rw-r--r-- | mediagoblin/themes/airy/templates/mediagoblin/base.html | 1 | ||||
-rw-r--r-- | mediagoblin/themes/airy/templates/mediagoblin/utils/feed_link.html | 23 |
11 files changed, 105 insertions, 88 deletions
diff --git a/mediagoblin/plugins/httpapiauth/__init__.py b/mediagoblin/plugins/httpapiauth/__init__.py new file mode 100644 index 00000000..d3d2065e --- /dev/null +++ b/mediagoblin/plugins/httpapiauth/__init__.py @@ -0,0 +1,58 @@ +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. + +import logging +import base64 + +from werkzeug.exceptions import BadRequest, Unauthorized + +from mediagoblin.plugins.api.tools import Auth + +_log = logging.getLogger(__name__) + + +def setup_http_api_auth(): + _log.info('Setting up HTTP API Auth...') + + +class HTTPAuth(Auth): + def trigger(self, request): + if request.authorization: + return True + + return False + + def __call__(self, request, *args, **kw): + _log.debug('Trying to authorize the user agent via HTTP Auth') + if not request.authorization: + return False + + user = request.db.User.query.filter_by( + username=request.authorization['username']).first() + + if user.check_login(request.authorization['password']): + request.user = user + return True + else: + raise Unauthorized() + + return False + + + +hooks = { + 'setup': setup_http_api_auth, + 'auth': HTTPAuth()} diff --git a/mediagoblin/static/css/base.css b/mediagoblin/static/css/base.css index b37da026..cd16a7c0 100644 --- a/mediagoblin/static/css/base.css +++ b/mediagoblin/static/css/base.css @@ -138,37 +138,6 @@ header { list-style: none; } -.dropdown { - display: inline-block; - color: #c3c3c3; - background-color: #424242; - border: 1px solid; - border-color: #464646 #2B2B2B #252525; - border-radius: 4px; - padding: 3px 8px; - font-size: 16px; - text-decoration: none; - font-style: normal; - font-weight: bold; - cursor: pointer; - position: relative; -} - -.dropdown_items { - position: absolute; - right: 0px; - top: 25px; - background-color: #424242; - padding: 10px; - width: 160px; - border-radius: 5px 0 5px 5px; - box-shadow: 0 2px 1px black; -} - -.dropdown_items a { - display: block; -} - a.logo { color: #fff; font-weight: bold; diff --git a/mediagoblin/static/js/header_dropdown.js b/mediagoblin/static/js/header_dropdown.js deleted file mode 100644 index 643bafa4..00000000 --- a/mediagoblin/static/js/header_dropdown.js +++ /dev/null @@ -1,30 +0,0 @@ -/** - * GNU MediaGoblin -- federated, autonomous media hosting - * Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. - */ - -$(document).ready(function() { - $(".dropdown_items").hide(); - $(document).mouseup(function(e) { - if($(e.target).is(".dropdown")) { - $(".dropdown_items").toggle(); - } else if($(e.target).is(".dropdown_items")) { - return; - } else { - $(".dropdown_items").hide(); - } - }); -}); diff --git a/mediagoblin/templates/mediagoblin/base.html b/mediagoblin/templates/mediagoblin/base.html index b6ba8818..ef99242f 100644 --- a/mediagoblin/templates/mediagoblin/base.html +++ b/mediagoblin/templates/mediagoblin/base.html @@ -52,24 +52,17 @@ {% block mediagoblin_header_title %}{% endblock %} <div class="header_right"> {% if request.user %} + <a href="{{ request.urlgen('mediagoblin.user_pages.user_home', user= request.user.username) }}">{{ request.user.username }}</a>{% trans %}'s account{% endtrans %} + (<a href="{{ request.urlgen('mediagoblin.auth.logout') }}">{% trans %}log out{% endtrans %}</a>) + {% if request.user and request.user.status == 'active' %} + <a class="button_action" href="{{ request.urlgen('mediagoblin.submit.start') }}">{% trans %}Add media{% endtrans %}</a> + {% elif request.user and request.user.status == "needs_email_verification" %} {# the following link should only appear when verification is needed #} - {% if request.user.status == "needs_email_verification" %} <a href="{{ request.urlgen('mediagoblin.user_pages.user_home', - user=request.user.username) }}" + user=request.user.username) }}" class="button_action_highlight"> - {% trans %}Verify your email!{% endtrans %}</a> + {% trans %}Verify your email!{% endtrans %}</a> {% endif %} - <div class="dropdown"> - {{ request.user.username }} ▾ - <div class="dropdown_items"> - {% if request.user and request.user.status == 'active' %} - <a href="{{ request.urlgen('mediagoblin.submit.start') }}">{% trans %}+ Add media{% endtrans %}</a> - <a href="{{ request.urlgen('mediagoblin.submit.collection') }}">{% trans %}+ Add collection{% endtrans %}</a> - {% endif %} - <a href="{{ request.urlgen('mediagoblin.user_pages.user_home', user= request.user.username) }}">{% trans %}View your profile{% endtrans %}</a> - <a class="button_action" href="{{ request.urlgen('mediagoblin.auth.logout') }}">{% trans %}Log out{% endtrans %}</a> - </div> - </div> {% else %} <a href="{{ request.urlgen('mediagoblin.auth.login') }}"> {% trans %}Log in{% endtrans %}</a> diff --git a/mediagoblin/templates/mediagoblin/root.html b/mediagoblin/templates/mediagoblin/root.html index 5c6eb52f..99d3269f 100644 --- a/mediagoblin/templates/mediagoblin/root.html +++ b/mediagoblin/templates/mediagoblin/root.html @@ -21,6 +21,15 @@ {% block mediagoblin_content %} {% if request.user %} + {% if request.user.status == 'active' %} + <h1>{% trans %}Actions{% endtrans %}</h1> + <p><a href="{{ request.urlgen('mediagoblin.submit.collection') }}"> + {% trans %}Create new collection{% endtrans %} + </a></p> + <p><a href="{{ request.urlgen('mediagoblin.edit.account') }}"> + {%- trans %}Change account settings{% endtrans -%} + </a></p> + {% endif %} <h1>{% trans %}Explore{% endtrans %}</h1> {% else %} <h1>{% trans %}Hi there, welcome to this MediaGoblin site!{% endtrans %}</h1> diff --git a/mediagoblin/templates/mediagoblin/user_pages/user.html b/mediagoblin/templates/mediagoblin/user_pages/user.html index c417ccd4..eb3bde48 100644 --- a/mediagoblin/templates/mediagoblin/user_pages/user.html +++ b/mediagoblin/templates/mediagoblin/user_pages/user.html @@ -119,12 +119,6 @@ </a> {% endif %} {% endif %} - - {% if request.user and (request.user._id == user._id) %} - <a href="{{ request.urlgen('mediagoblin.edit.account') }}"> - {%- trans %}Change account settings{% endtrans -%} - </a> - {% endif %} </div> {% if media_entries.count() %} diff --git a/mediagoblin/themes/airy/assets/css/airy.css b/mediagoblin/themes/airy/assets/css/airy.css index ba9048b2..6143b6e1 100644 --- a/mediagoblin/themes/airy/assets/css/airy.css +++ b/mediagoblin/themes/airy/assets/css/airy.css @@ -3,16 +3,12 @@ body { background-color: #F7F7F7; } -h1,h2 { - color: #787878; -} - -h3 { +h1,h2,h3 { color: #4a4a4a; } a { - color: #37BD85; + color: #37AB74; } .navigation_button { @@ -52,7 +48,7 @@ footer { .button_action_highlight, .button_form { color: #fff; - background-color: #37BD85; + background-color: #37AB74; border-color: #6CAA8E; border-width: 1px 1px 2px; } @@ -86,3 +82,7 @@ input, textarea { .dropdown_items { background-color: #fff; } + +.empty_space { + background-image: url("../images/empty_dots.png"); +} diff --git a/mediagoblin/themes/airy/assets/images/empty_dots.png b/mediagoblin/themes/airy/assets/images/empty_dots.png Binary files differnew file mode 100644 index 00000000..5ee050b2 --- /dev/null +++ b/mediagoblin/themes/airy/assets/images/empty_dots.png diff --git a/mediagoblin/themes/airy/assets/images/icon_feed.png b/mediagoblin/themes/airy/assets/images/icon_feed.png Binary files differnew file mode 100644 index 00000000..18c085b4 --- /dev/null +++ b/mediagoblin/themes/airy/assets/images/icon_feed.png diff --git a/mediagoblin/themes/airy/templates/mediagoblin/base.html b/mediagoblin/themes/airy/templates/mediagoblin/base.html index 8bd9a7f9..d243d331 100644 --- a/mediagoblin/themes/airy/templates/mediagoblin/base.html +++ b/mediagoblin/themes/airy/templates/mediagoblin/base.html @@ -65,6 +65,7 @@ <div class="dropdown_items"> {% if request.user and request.user.status == 'active' %} <a href="{{ request.urlgen('mediagoblin.submit.start') }}">{% trans %}+ Add media{% endtrans %}</a> + <a href="{{ request.urlgen('mediagoblin.submit.collection') }}">{% trans %}+ Add collection{% endtrans %}</a> {% endif %} <a href="{{ request.urlgen('mediagoblin.user_pages.user_home', user= request.user.username) }}">{% trans %}View your profile{% endtrans %}</a> <a class="button_action" href="{{ request.urlgen('mediagoblin.auth.logout') }}">{% trans %}Log out{% endtrans %}</a> diff --git a/mediagoblin/themes/airy/templates/mediagoblin/utils/feed_link.html b/mediagoblin/themes/airy/templates/mediagoblin/utils/feed_link.html new file mode 100644 index 00000000..cf5099a2 --- /dev/null +++ b/mediagoblin/themes/airy/templates/mediagoblin/utils/feed_link.html @@ -0,0 +1,23 @@ +{# +# GNU MediaGoblin -- federated, autonomous media hosting +# Copyright (C) 2011, 2012 MediaGoblin contributors. See AUTHORS. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +#} + +<a href="{{ feed_url }}"> + <img src="{{ request.staticdirect('/images/icon_feed.png', 'theme') }}" + class="media_icon" alt="{% trans %}feed icon{% endtrans %}" /> +</a> +<a href="{{ feed_url }}">{%- trans %}Atom feed{% endtrans -%}</a> |