Field is_regular can be changed in admin pages, non regular users cann not change, edit or create groups
--- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/groups.html Thu Nov 24 15:32:19 2011 +0100
+++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/groups.html Thu Nov 24 16:13:56 2011 +0100
@@ -17,7 +17,9 @@
var get_group_projects_url = "{% url ldt.ldt_utils.views.get_group_projects %}";
function init_events(base_node) {
- init_events_all(base_node, "{% url ldt.ldt_utils.views.popup_embed %}", groups_filter_url, project_filter_url, publish_project_url, unpublish_project_url);
+ init_events_base_projects(base_node, "{% url ldt.ldt_utils.views.popup_embed %}", null, publish_project_url, unpublish_project_url)
+ init_events_group(base_node, "{% url ldt.ldt_utils.views.popup_embed %}", groups_filter_url, project_filter_url, publish_project_url, unpublish_project_url);
+ init_events_contents(base_node, "{% url ldt.ldt_utils.views.popup_embed %}");
}
var global_csrf_token = "{{ csrf_token }}";
@@ -83,7 +85,9 @@
<div class="span-12 last titlediv" >
<div class="span-8 projectscontentstitle">{% trans "My groups" %}</div>
<div class="span-4 last searchfielddiv" >
- <a class="create_group" href="{% url ldt.ldt_utils.views.create_group %}"><img class='icon_title' src="{{LDT_MEDIA_PREFIX}}img/film_add.png" alt="{% trans 'Create content' %}" title="{% trans 'Create group' %}" /></a>
+ {% if user.is_regular %}
+ <a class="create_group" href="{% url ldt.ldt_utils.views.create_group %}"><img class='icon_title' src="{{LDT_MEDIA_PREFIX}}img/film_add.png" alt="{% trans 'Create group' %}" title="{% trans 'Create group' %}" /></a>
+ {% endif %}
</div>
</div>
<div class="span-12 last projectscontentsdiv" id="groupslistcontainer">
--- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/groupslist.html Thu Nov 24 15:32:19 2011 +0100
+++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/partial/groupslist.html Thu Nov 24 16:13:56 2011 +0100
@@ -10,6 +10,7 @@
{% for group in groups %}
<tr class="imageline {% cycle 'projectscontentsoddline' 'projectscontentsevenline'%} update_group_projects" id="{{ group.id }}">
+ {% if user.is_regular %}
{% if group.change %}
<td class="cellimg"><a class="grouplink create_group" title="{% trans "Change this group"%}" href="{% url ldt.ldt_utils.views.update_group group.id %}">c</a></td>
<td><b>{{ group.name }}</b></td>
@@ -17,6 +18,10 @@
<td class="cellimg"><a class="grouplink" title="{% trans "Leave this group" %}" href="{% url ldt.ldt_utils.views.leave_group group.id %}">l</a></td>
<td>{{ group.name }}</td>
{% endif %}
+ {% else %}
+ <td class="cellimg"></td>
+ <td>{{ group.name }}</td>
+ {% endif %}
<td class="align_right"><img src="{{LDT_MEDIA_PREFIX}}/img/control_play.png" class="next_icon"/></td>
--- a/src/ldt/ldt/ldt_utils/views.py Thu Nov 24 15:32:19 2011 +0100
+++ b/src/ldt/ldt/ldt_utils/views.py Thu Nov 24 16:13:56 2011 +0100
@@ -1264,6 +1264,8 @@
@login_required
def create_group(request):
+ if not request.user.is_regular:
+ return HttpResponseServerError('<h1>User can leave a group.</h1>')
user_list = User.objects.exclude(id=settings.ANONYMOUS_USER_ID).exclude(id=request.user.id)
form_status = ''
@@ -1293,7 +1295,9 @@
return render_to_response("ldt/ldt_utils/create_group.html", {'form' : form, 'form_status' : form_status, 'user_list' : user_list, 'admin_list': user_list}, context_instance=RequestContext(request))
@login_required
-def update_group(request, group_id):
+def update_group(request, group_id):
+ if not request.user.is_regular:
+ return HttpResponseServerError('<h1>User can leave a group.</h1>')
group = get_object_or_404(Group, id=group_id)
user_list = User.objects.exclude(id=settings.ANONYMOUS_USER_ID).exclude(id=request.user.id)
@@ -1348,6 +1352,9 @@
@login_required
def leave_group(request, group_id, redirect=True):
+ if not request.user.is_regular:
+ return HttpResponseServerError('<h1>User can leave a group.</h1>')
+
group = get_object_or_404(Group, id=group_id)
redirect = boolean_convert(redirect)
--- a/src/ldt/ldt/user/admin.py Thu Nov 24 15:32:19 2011 +0100
+++ b/src/ldt/ldt/user/admin.py Thu Nov 24 16:13:56 2011 +0100
@@ -5,12 +5,13 @@
from django.utils.translation import ugettext as _
from forms import LdtForm
from guardian.admin import GuardedModelAdmin
-from models import Ldt
-
+from models import Ldt, UserProfile
class GroupAdmin(GuardedModelAdmin):
pass
+class UserProfileInline(admin.StackedInline):
+ model = UserProfile
class LdtAdmin(UserAdmin):
list_display = ('username', 'email', 'first_name', 'last_name')
@@ -24,6 +25,7 @@
form = LdtForm
model = Ldt
filter_horizontal = ('user_permissions',)
+ inlines = [UserProfileInline, ]
def get_fieldsets(self, request, obj=None):
fieldsets = deepcopy(self.fieldsets)
@@ -33,10 +35,11 @@
return fieldsets
def add_view(self, request):
- return super(UserAdmin, self).add_view(request)
-
-admin.site.unregister(Ldt)
-admin.site.register(Ldt, LdtAdmin)
+ return super(UserAdmin, self).add_view(request)
+
admin.site.unregister(Group)
admin.site.register(Group, GroupAdmin)
+
+admin.site.unregister(Ldt)
+admin.site.register(Ldt, LdtAdmin)
\ No newline at end of file