# coding: utf-8
'''
Created on 24.09.2014

@author: d.bozhenko
'''

import json
from security.functions import userHasPermission

def authentificationNavigator(context, session):
    '''Часть общего навигатора для гранулы разграничения прав доступа'''
    sid=json.loads(session)['sessioncontext']['sid']
    resultJSON = {"group":{"@id": "security",
                           "@name": "Разграничение прав доступа",
                           #"@icon": "navigatorIcons/security.png",
                           "level1":[]}
                  }
    '''Проверка разрешений на формирование навигатора'''
    if userHasPermission(context, sid, 'loginsSubjectsPoint'):  
        resultJSON["group"]["level1"].append({"@id": "users",
                                              "@name": "Сотрудники и пользователи",
                                              "action":{"#sorted": [{"main_context": "current"},
                                                        {"datapanel":{"@type": "security.datapanel.users.usersDatapanel.celesta",
                                                                     "@tab": "firstOrCurrent"
                                                                     }
                                                         }]
                                                        }
                                              })
    if userHasPermission(context, sid, 'rolesPoint'):
        resultJSON["group"]["level1"].append({"@id": "roles",
                                              "@name": "Роли",
                                              "action":{"#sorted": [{"main_context": "current"},
                                                        {"datapanel":{"@type": "security.datapanel.roles.rolesDatapanel.celesta",
                                                                     "@tab": "firstOrCurrent"
                                                                     }
                                                        }]
                                                        }
                                                        
                                              })
    if userHasPermission(context, sid, 'permissionsPoint'):
        resultJSON["group"]["level1"].append({"@id": "permissions",
                                              "@name": "Разрешения",
                                              "action":{"#sorted": [{"main_context": "current"},
                                                        {"datapanel":{"@type": "security.datapanel.permissions.datapanel.celesta",
                                                                     "@tab": "firstOrCurrent"
                                                                     }
                                                        }]}
                                              })
    
#     resultJSON["group"]["level1"].append({"@id": "test",
#                                               "@name": "test",
#                                               "action":{"main_context": "current",
#                                                         "datapanel":{"@type": "security.testDatapanel.datapanel.celesta",
#                                                                      "@tab": "firstOrCurrent"
#                                                                      }
#                                                         }
#                                               })
                                    
    if  not userHasPermission(context, sid, 'loginsSubjectsPoint') and \
        not userHasPermission(context, sid, 'rolesPoint') and \
        not userHasPermission(context, sid, 'permissionsPoint'):
        resultJSON = {"group": None}
    return resultJSON