#-*- coding: utf-8 -*- # Copyright 2012-2016 Mir Calculate. http://www.calculate-linux.org # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. import sys from function import get_sid from calculate.lib.cl_lang import setLocalTranslate setLocalTranslate('cl_console3',sys.modules[__name__]) def client_del_sid(client): """ delete this session """ sid = get_sid(client.SID_FILE) try: s = client.service.del_sid(sid) if s[0][0] == "-1": print _("No access to the file!") return -1 if s[0][0] == "1": print _("Failed to obtain certificate data!") return -2 if s[0][0] == "Permission denied": _print (_("%s: permission denied") % s[1][1]) return -3 if s[0][0] == '0': fi = open(client.SID_FILE, 'w') fi.write('0') fi.close() print _("SID deleted!") except: print _("SID deletion error on the server") return 1 return 0 def sid_inf(client, sid): red = '\033[31m * \033[0m' green = '\033[32m * \033[0m' """ get information about selected session """ s = client.service.sid_info(sid) if s[0][0] == "-1": print red + _("Session non registered on the server!") return -1 if s[0][0] == "-2": print red + _("Failed to obtain certificate data!") return -2 if s[0][0] == "Permission denied": print red + _("%s: permission denied") % s[0][1] return -3 print _('Session information: ') print green + _(u"Session number: %s") %sid print green + _(u"Certificate number: %s") %s[0][0] _print (green + _(u"Certificate issued on %s") %s[0][1]) print green + "ip - %s" %s[0][2] print green + "MAC - %s\n" %s[0][3] return 0 def client_session_info(client, sid = None): """ select session for get information """ try: select_sid = sid if sid else client.sid sid_inf(client, select_sid) except Exception, e: if type (e.message) == tuple and len(e.message) == 2 \ and e.message[1] == 'Forbidden': print _("Access forbidden!") else: print e return 1 def client_session_list(client): red = '\033[31m * \033[0m' green = '\033[32m * \033[0m' try: res = client.service.get_sessions(client.sid) except Exception, e: if type (e.message) == tuple and len(e.message) == 2 \ and e.message[1] == 'Forbidden': print _("Access forbidden!") else: print e return 1 if hasattr (res, 'string'): if res.string: print _('Active sessions on the server: ') for session_id in res.string: print green + session_id print return 0 print red + _('No active sessions on the server') def session_clean(client): try: res = client.service.clear_session_cache(client.sid) except Exception, e: if type (e.message) == tuple and len(e.message) == 2 \ and e.message[1] == 'Forbidden': print _("Access forbidden!") else: print e if res: print _('Error clearing the session cache') else: print _('Session cache cleared')