static.py 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. # -*- coding: utf-8 -*-
  2. #
  3. # This file is part of Radicale Server - Calendar Server
  4. # Copyright © 2011-2012 Guillaume Ayoub
  5. #
  6. # This library is free software: you can redistribute it and/or modify
  7. # it under the terms of the GNU General Public License as published by
  8. # the Free Software Foundation, either version 3 of the License, or
  9. # (at your option) any later version.
  10. #
  11. # This library is distributed in the hope that it will be useful,
  12. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14. # GNU General Public License for more details.
  15. #
  16. # You should have received a copy of the GNU General Public License
  17. # along with Radicale. If not, see <http://www.gnu.org/licenses/>.
  18. """
  19. Radicale authorization module.
  20. Manages who is authorized to access a collection.
  21. The policy is that the owner may read and write in
  22. all collections and some special rights are hardcoded.
  23. """
  24. import os
  25. import sys
  26. from radicale import authorization, config, log
  27. from radicale.authorization import owneronly
  28. def read_authorized(user, collection):
  29. """Check if the user is allowed to read the collection"""
  30. log.LOGGER.debug("read_authorized '" + user + "' in '" + collection.owner + "/" + collection.name + "'");
  31. if owneronly.read_authorized(user, collection):
  32. return True
  33. if user == "user1" and collection.owner == "user2" and collection.name == "user2sharedwithuser1":
  34. return True
  35. if user == "user2" and collection.owner == "user1" and collection.name == "user1sharedwithuser2":
  36. return True
  37. return False
  38. def write_authorized(user, collection):
  39. """Check if the user is allowed to write the collection"""
  40. log.LOGGER.debug("write_authorized '" + user + "' in '" + collection.owner + "/" + collection.name + "'");
  41. if owneronly.write_authorized(user, collection):
  42. return True
  43. if user == "user1" and collection.owner == "user2" and collection.name == "user2sharedwithuser1":
  44. return True
  45. if user == "user2" and collection.owner == "user1" and collection.name == "user1sharedwithuser2":
  46. return False
  47. return False