doc.txt 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. package permission // import "imuslab.com/arozos/mod/permission"
  2. FUNCTIONS
  3. func inSlice(slice []string, val string) bool
  4. Helper function
  5. func mv(r *http.Request, getParamter string, postMode bool) (string, error)
  6. func sendErrorResponse(w http.ResponseWriter, errMsg string)
  7. func sendJSONResponse(w http.ResponseWriter, json string)
  8. Send JSON response, with an extra json header
  9. func sendOK(w http.ResponseWriter)
  10. func sendTextResponse(w http.ResponseWriter, msg string)
  11. Send text response with given w and message as string
  12. TYPES
  13. type PermissionGroup struct {
  14. Name string
  15. IsAdmin bool
  16. DefaultStorageQuota int64
  17. AccessibleModules []string
  18. StoragePool *storage.StoragePool
  19. }
  20. func (gp *PermissionGroup) AddModule(modulename string)
  21. func (gp *PermissionGroup) RemoveModule(modulename string)
  22. type PermissionHandler struct {
  23. database *db.Database
  24. PermissionGroups []PermissionGroup
  25. }
  26. func NewPermissionHandler(database *db.Database) (*PermissionHandler, error)
  27. func (h *PermissionHandler) GetUsersPermissionGroup(username string) ([]*PermissionGroup, error)
  28. Get the user permission groups
  29. func (h *PermissionHandler) GroupExists(groupName string) bool
  30. func (h *PermissionHandler) HandleAdminCheck(w http.ResponseWriter, r *http.Request)
  31. func (h *PermissionHandler) HandleGroupCreate(w http.ResponseWriter, r *http.Request)
  32. func (h *PermissionHandler) HandleGroupRemove(w http.ResponseWriter, r *http.Request)
  33. func (h *PermissionHandler) HandleListGroup(w http.ResponseWriter, r *http.Request)
  34. Handle group editing operations
  35. func (h *PermissionHandler) LoadPermissionGroupsFromDatabase() error
  36. func (h *PermissionHandler) NewPermissionGroup(name string, isadmin bool, moduleNames []string) *PermissionGroup