add isPermissionMethod #8
			
				
			
		
		
		
	| 
						 | 
				
			
			@ -7,7 +7,7 @@ import (
 | 
			
		|||
| 
					
 | 
			||||
	"github.com/allegro/bigcache/v3"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var cache *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 
			
		 | 
			||||
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 
			
		 | 
			||||
 | 
			
		||||
// 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 {
 | 
			
		||||
		log.Fatalf("Cannot init Cache %v", err)
 | 
			
		||||
	}
 | 
			
		||||
	cache = 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 
			
		 | 
			||||
	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 
			
		 | 
			||||
 | 
			
		||||
	// Cache 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 ...
 | 
			
		||||
func GetInstance() *bigcache.BigCache {
 | 
			
		||||
	return cache
 | 
			
		||||
| 
					
 đặ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 
			
		 | 
			||||
	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
``` 
			
		đặ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,
 | 
			
		||||
				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{
 | 
			
		||||
					"err": err.Error(),
 | 
			
		||||
				})
 | 
			
		||||
| 
						 | 
				
			
			@ -55,10 +55,10 @@ func Roles() {
 | 
			
		|||
 | 
			
		||||
// GetCachedRole ...
 | 
			
		||||
func GetCachedRole(key string) CachedRole {
 | 
			
		||||
	entry, err := cache.Get(key)
 | 
			
		||||
	entry, err := mc.Get(key)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		Roles()
 | 
			
		||||
		entry, _ = cache.Get(key)
 | 
			
		||||
		entry, _ = mc.Get(key)
 | 
			
		||||
	}
 | 
			
		||||
	var cachedRole CachedRole
 | 
			
		||||
	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