add isPermissionMethod #8
			
				
			
		
		
		
	| 
						 | 
					@ -7,7 +7,7 @@ import (
 | 
				
			||||||
| 
						
							
 | 
				|||||||
	"github.com/allegro/bigcache/v3"
 | 
						"github.com/allegro/bigcache/v3"
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
var cache *bigcache.BigCache
 | 
					var mc *bigcache.BigCache
 | 
				
			||||||
| 
							
								
									
 đặt constant phía trên luôn 
			
			đặt constant phía trên luôn
```go
const cacheTime = 24 * 30 * time.Hour // 30 days
``` 
			
		done done 
			
		đặt tên biến lại chớ trùng với tên package rồi,  đặt tên biến lại chớ trùng với tên package rồi, `mc` (mem-cache) 
			
		done done 
			
		đặt constant phía trên luôn 
			
			đặt constant phía trên luôn
```go
const cacheTime = 24 * 30 * time.Hour // 30 days
``` 
			
		done done 
			
		đặt tên biến lại chớ trùng với tên package rồi,  đặt tên biến lại chớ trùng với tên package rồi, `mc` (mem-cache) 
			
		done done 
			
		 | 
					|||||||
 | 
					
 | 
				
			||||||
// Init ...
 | 
					// Init ...
 | 
				
			||||||
func Init() {
 | 
					func Init() {
 | 
				
			||||||
| 
						 | 
					@ -17,7 +17,7 @@ func Init() {
 | 
				
			||||||
| 
						
							
 đặt constant phía trên luôn 
			
			đặt constant phía trên luôn
```go
const cacheTime = 24 * 30 * time.Hour // 30 days
``` 
			
		đặt constant phía trên luôn 
			
			đặt constant phía trên luôn
```go
const cacheTime = 24 * 30 * time.Hour // 30 days
``` 
			
		done done 
			
		done done 
			
		đặt tên biến lại chớ trùng với tên package rồi,  đặt tên biến lại chớ trùng với tên package rồi, `mc` (mem-cache) 
			
		đặt tên biến lại chớ trùng với tên package rồi,  đặt tên biến lại chớ trùng với tên package rồi, `mc` (mem-cache) 
			
		done done 
			
		done done 
			
		 | 
				|||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		log.Fatalf("Cannot init Cache %v", err)
 | 
							log.Fatalf("Cannot init Cache %v", err)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	cache = c
 | 
						mc = c
 | 
				
			||||||
| 
							
								
									
 đặt constant phía trên luôn 
			
			đặt constant phía trên luôn
```go
const cacheTime = 24 * 30 * time.Hour // 30 days
``` 
			
		done done 
			
		đặt tên biến lại chớ trùng với tên package rồi,  đặt tên biến lại chớ trùng với tên package rồi, `mc` (mem-cache) 
			
		done done 
			
		đặt constant phía trên luôn 
			
			đặt constant phía trên luôn
```go
const cacheTime = 24 * 30 * time.Hour // 30 days
``` 
			
		done done 
			
		đặt tên biến lại chớ trùng với tên package rồi,  đặt tên biến lại chớ trùng với tên package rồi, `mc` (mem-cache) 
			
		done done 
			
		 | 
					|||||||
 | 
					
 | 
				
			||||||
	// Cache roles
 | 
						// Cache roles
 | 
				
			||||||
	Roles()
 | 
						Roles()
 | 
				
			||||||
| 
						 | 
					@ -25,5 +25,5 @@ func Init() {
 | 
				
			||||||
| 
						
							
 đặt constant phía trên luôn 
			
			đặt constant phía trên luôn
```go
const cacheTime = 24 * 30 * time.Hour // 30 days
``` 
			
		đặt constant phía trên luôn 
			
			đặt constant phía trên luôn
```go
const cacheTime = 24 * 30 * time.Hour // 30 days
``` 
			
		done done 
			
		done done 
			
		đặt tên biến lại chớ trùng với tên package rồi,  đặt tên biến lại chớ trùng với tên package rồi, `mc` (mem-cache) 
			
		đặt tên biến lại chớ trùng với tên package rồi,  đặt tên biến lại chớ trùng với tên package rồi, `mc` (mem-cache) 
			
		done done 
			
		done done 
			
		 | 
				|||||||
 | 
					
 | 
				
			||||||
// GetInstance ...
 | 
					// GetInstance ...
 | 
				
			||||||
func GetInstance() *bigcache.BigCache {
 | 
					func GetInstance() *bigcache.BigCache {
 | 
				
			||||||
	return cache
 | 
						return mc
 | 
				
			||||||
| 
							
								
									
 đặt constant phía trên luôn 
			
			đặt constant phía trên luôn
```go
const cacheTime = 24 * 30 * time.Hour // 30 days
``` 
			
		done done 
			
		đặt tên biến lại chớ trùng với tên package rồi,  đặt tên biến lại chớ trùng với tên package rồi, `mc` (mem-cache) 
			
		done done 
			
		đặt constant phía trên luôn 
			
			đặt constant phía trên luôn
```go
const cacheTime = 24 * 30 * time.Hour // 30 days
``` 
			
		done done 
			
		đặt tên biến lại chớ trùng với tên package rồi,  đặt tên biến lại chớ trùng với tên package rồi, `mc` (mem-cache) 
			
		done done 
			
		 | 
					|||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						
							
 đặt constant phía trên luôn 
			
			đặt constant phía trên luôn
```go
const cacheTime = 24 * 30 * time.Hour // 30 days
``` 
			
		đặt constant phía trên luôn 
			
			đặt constant phía trên luôn
```go
const cacheTime = 24 * 30 * time.Hour // 30 days
``` 
			
		done done 
			
		done done 
			
		đặt tên biến lại chớ trùng với tên package rồi,  đặt tên biến lại chớ trùng với tên package rồi, `mc` (mem-cache) 
			
		đặt tên biến lại chớ trùng với tên package rồi,  đặt tên biến lại chớ trùng với tên package rồi, `mc` (mem-cache) 
			
		done done 
			
		done done 
			
		 | 
				|||||||
| 
						 | 
					@ -40,7 +40,7 @@ func Roles() {
 | 
				
			||||||
				IsAdmin:     role.IsAdmin,
 | 
									IsAdmin:     role.IsAdmin,
 | 
				
			||||||
				Permissions: rolePermissions,
 | 
									Permissions: rolePermissions,
 | 
				
			||||||
			})
 | 
								})
 | 
				
			||||||
			if err := cache.Set(role.ID.Hex(), entry); err != nil {
 | 
								if err := mc.Set(role.ID.Hex(), entry); err != nil {
 | 
				
			||||||
				logger.Error("usermngmt - CacheRole", logger.LogData{
 | 
									logger.Error("usermngmt - CacheRole", logger.LogData{
 | 
				
			||||||
					"err": err.Error(),
 | 
										"err": err.Error(),
 | 
				
			||||||
				})
 | 
									})
 | 
				
			||||||
| 
						 | 
					@ -55,10 +55,10 @@ func Roles() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// GetCachedRole ...
 | 
					// GetCachedRole ...
 | 
				
			||||||
func GetCachedRole(key string) CachedRole {
 | 
					func GetCachedRole(key string) CachedRole {
 | 
				
			||||||
	entry, err := cache.Get(key)
 | 
						entry, err := mc.Get(key)
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		Roles()
 | 
							Roles()
 | 
				
			||||||
		entry, _ = cache.Get(key)
 | 
							entry, _ = mc.Get(key)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	var cachedRole CachedRole
 | 
						var cachedRole CachedRole
 | 
				
			||||||
	if err = json.Unmarshal(entry, &cachedRole); err != nil {
 | 
						if err = json.Unmarshal(entry, &cachedRole); err != nil {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
đặt constant phía trên luôn
đặt constant phía trên luôn
done
done
đặt tên biến lại chớ trùng với tên package rồi,
mc(mem-cache)đặt tên biến lại chớ trùng với tên package rồi,
mc(mem-cache)done
done