1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #ifndef EXTENSIONS_COMMON_PERMISSIONS_MEDIA_GALLERIES_PERMISSION_H_ 6 #define EXTENSIONS_COMMON_PERMISSIONS_MEDIA_GALLERIES_PERMISSION_H_ 7 8 #include "base/basictypes.h" 9 #include "extensions/common/permissions/api_permission.h" 10 #include "extensions/common/permissions/media_galleries_permission_data.h" 11 #include "extensions/common/permissions/set_disjunction_permission.h" 12 13 namespace extensions { 14 15 // Media Galleries permissions are as follows: 16 // <media-galleries-permission-pattern> 17 // := <access> | <access> 'allAutoDetected' | 'allAutoDetected' | 18 // <access> 'scan' | 'scan' 19 // <access> := 'read' | 'read' <access> | 'read' <secondary-access> 20 // <secondary-access> 21 // := 'delete' | 'delete' <secondary-access> | 22 // 'delete' <tertiary-access> 23 // <tertiary-access> 24 // := 'copyTo' | 'copyTo' <tertiary-access> 25 class MediaGalleriesPermission 26 : public SetDisjunctionPermission<MediaGalleriesPermissionData, 27 MediaGalleriesPermission> { 28 public: 29 struct CheckParam : public APIPermission::CheckParam { 30 explicit CheckParam(const std::string& permission) 31 : permission(permission) {} 32 const std::string permission; 33 }; 34 35 explicit MediaGalleriesPermission(const APIPermissionInfo* info); 36 virtual ~MediaGalleriesPermission(); 37 38 // SetDisjunctionPermission overrides. 39 // MediaGalleriesPermission does additional checks to make sure the 40 // permissions do not contain unknown values. 41 virtual bool FromValue( 42 const base::Value* value, 43 std::string* error, 44 std::vector<std::string>* unhandled_permissions) OVERRIDE; 45 46 // APIPermission overrides. 47 virtual PermissionMessages GetMessages() const OVERRIDE; 48 49 // Permission strings. 50 static const char kAllAutoDetectedPermission[]; 51 static const char kScanPermission[]; 52 static const char kReadPermission[]; 53 static const char kCopyToPermission[]; 54 static const char kDeletePermission[]; 55 }; 56 57 } // namespace extensions 58 59 #endif // EXTENSIONS_COMMON_PERMISSIONS_MEDIA_GALLERIES_PERMISSION_H_ 60