def membership_add_subscription(user, membership_type, active=False): valid_from = timezone.now() valid_to = valid_from + timedelta(days=membership_type.day_to_live) membership = Membership(user=user, membership_type=membership_type, valid_to=valid_to, valid_from=valid_from, updated_at=valid_from, active=active) membership.save()
def createGroup(request, username): assert isinstance(request, HttpRequest) # If the method is a POST request, check if it is a valid Create Group form if request.method == 'POST': form = CreateGroupForm(request.POST) if form.is_valid(): name = form.cleaned_data['name'] # If the group already exists, do nothing if Group.objects.filter(name=name).exists(): return render( request, 'app/createGroup.html', { 'title': username, 'form': CreateGroupForm(), 'error': 'Group already exists' }) # If the group does not exists, make a new group else: user = User.objects.get_by_natural_key(username) gDrive = GoogleDrive() # Create a folder in the drive and get its id folderId = gDrive.createGroup(name) # Create a group in the db, setting the owner to be the user who created the group, # and the gdriveid to be the id of the newly created folder group = Group() group.name = name group.owner = user group.gdriveid = folderId # Create a random 16 byte key that will be used for encryption/decryption group.key = get_random_bytes(16) group.save() # Create a membership relationship between the new group and the user who created it membership = Membership() membership.group = group membership.user = user membership.save() # Redirect back to the user page return redirect('/userpage/' + username) else: # If there was no POST request, just render the userpage as normal return render(request, 'app/createGroup.html', { 'title': username, 'form': CreateGroupForm() })
def manageUsers(request, groupId): assert isinstance(request, HttpRequest) group = Group.objects.get(id=groupId) # If the method is a POST request, check if it is a valid Add User form if request.method == 'POST': form = AddUserForm(request.POST) if form.is_valid(): name = form.cleaned_data['name'] # If the user doesn't exist, render an informative message if not User.objects.filter(username=name).exists(): return render( request, 'app/manageUsers.html', { 'title': 'ManageUsers', 'form': AddUserForm(), 'error': 'User doesn\'t exist', 'group': group }) user = User.objects.get_by_natural_key(name) # If the user is already a member of the group, render an informative message if Membership.objects.filter(user=user, group=group).exists(): return render( request, 'app/manageUsers.html', { 'title': 'ManageUsers', 'form': AddUserForm(), 'error': 'User is already a member', 'group': group }) else: # Otherwise, create a membership realtionship between the user and the group membership = Membership() membership.group = group membership.user = user membership.save() return render(request, 'app/manageUsers.html', { 'title': 'ManageUsers', 'form': AddUserForm(), 'group': group }) else: # If the request is not a POST request, renser the page as normal return render(request, 'app/manageUsers.html', { 'title': 'ManageUsers', 'form': AddUserForm(), 'group': group })
def subscribe(request, groupname): login = login_verify(request, None, True) if login: return login group = Group.objects.get(name=groupname) if request.method == 'POST': uid = request.POST.get('uid', '') expiration_date = request.POST.get('expiration_date', '') user = User.objects.get(uid=uid) membership = Membership(user=user, expiration_date=expiration_date) membership.save() group.members.add(membership) group.save() return HttpResponseRedirect('/view_group/' + groupname + '/') else: form = SubscribeForm() all_users = User.objects.all() user_list = [] for user in all_users: if user not in group.members.all(): user_list += [user] context = {'form': form, 'groupname': group.name, 'group': group, 'user_list': user_list} return render(request, 'app/subscribe.html', context)
permission_created = True break if not permission_created: p = Permission(value="ICanHaz.access", description="Access to the permission system") p.save() group.permissions.add(p) group.save() names = [] uids = [] for line in codecs.open('admins_to_add.txt', 'r', 'utf-8'): names.append(" ".join(line.split()[:-1])) uids.append(line.split()[-1]) for g, i, j, index in [[v,v,v,v] for v in range(0,len(names))]: try: i = User(name=names[index], uid=uids[index]) i.save() year = str(datetime.now().year) j = Membership(expiration_date=year+'-12-31', user=i) j.save() g = Group.objects.get(name='ICanHaz') g.members.add(j) g.save() print(i.name + " " + i.uid) except Exception as e: print("Failed on user number " + str(index) + " " + e.message, file=sys.stderr)