Changeset 5687


Ignore:
Timestamp:
Aug 10, 2017, 9:42:49 AM (20 months ago)
Author:
hectorgh
Message:

removing old files

Location:
lliurex-freeradius/trunk/fuentes/install/usr
Files:
3 deleted
1 edited

Legend:

Unmodified
Added
Removed
  • lliurex-freeradius/trunk/fuentes/install/usr/sbin/lliurex-freeradius

    r2768 r5687  
    1 #!/usr/bin/python
    2 import gi
    3 gi.require_version('Gtk','3.0')
    4 from gi.repository import Gtk,Gdk
    5 import os
     1#!/usr/bin/python3
     2
    63import sys
    7 import signal
    8 import gettext
    9 import random
    10 import string
    11 import xmlrpclib
     4sys.path.append("/usr/share/lliurex-freeradius/")
    125
    13 gettext.textdomain('lliurex-freeradius')
    14 _ = gettext.gettext
    15 
    16 signal.signal(signal.SIGINT, signal.SIG_DFL)
    17 
    18 class FreeRadiusSetup(Gtk.Application):
    19 
    20         def __init__(self):
    21                 Gtk.Application.__init__(self)
    22        
    23         #def
    24 
    25 
    26         #activation hook
    27         def do_activate(self):
    28 
    29                 glade_file="/srv/svn/trusty/lliurex-freeradius/trunk/fuentes/install/usr/share/lliurex-freeradius/rsrc/freeradius.ui"
    30                
    31                 if not os.path.exists(glade_file):
    32                         glade_file="/usr/share/lliurex-freeradius/rsrc/freeradius.ui"
    33                
    34                         if not os.path.exists(glade_file):
    35                                 raise("Resource file not found: "+glade_file)
    36                                
    37                
    38                 uitree = Gtk.Builder()
    39                 uitree.set_translation_domain("lliurex-freeradius")
    40                 uitree.add_from_file(glade_file)
    41                
    42                 # Main window
    43                
    44                 self.win_main=uitree.get_object("winMain")
    45                 self.win_main.connect("destroy",self.on_destroy)
    46                
    47                 self.btn_apply = uitree.get_object("btnApply")
    48                 btn_cancel = uitree.get_object("btnCancel")
    49                 btn_generate_password = uitree.get_object("btnGeneratePassword")
    50                
    51                 self.txt_radius_password = uitree.get_object("txtRadiusPassword")
    52                 self.txt_radius_server=uitree.get_object("txtServer")
    53                 self.txt_ldap_user=uitree.get_object("txtLDAPUser")
    54                 self.txt_ldap_pwd=uitree.get_object("txtLDAPPassword")
    55                 self.txt_router_ip=uitree.get_object("txtrouterip")
    56                
    57                 self.main_label=uitree.get_object("mainLabel")
    58                
    59                 self.btn_apply.connect("clicked",self.on_btn_apply_clicked)
    60                 btn_cancel.connect("clicked",self.on_btn_cancel_clicked)
    61                 btn_generate_password.connect("clicked",self.on_btn_generate_password_clicked)
    62                
    63                 self.txt_ldap_user.connect("changed",self.on_ldap_user_changed)
    64                
    65                 self.win_main.set_name("WHITEWINDOW")
    66                
    67                 # Login window
    68                
    69                 self.login_window=uitree.get_object("loginWindow")
    70                
    71                 self.user_entry=uitree.get_object("userEntry")
    72                 self.password_entry=uitree.get_object("pwdEntry")
    73                 self.server_entry=uitree.get_object("serverEntry")
    74                
    75                 self.user_entry.connect("activate",self.on_accept_login)
    76                 self.password_entry.connect("activate",self.on_accept_login)
    77                 self.server_entry.connect("activate",self.on_accept_login)
    78                
    79                 self.login_msg_label=uitree.get_object("loginMsgLabel")
    80                
    81                 self.cancel_login_button=uitree.get_object("cancelLoginButton")
    82                 self.accept_login_button=uitree.get_object("acceptLoginButton")
    83                
    84                 self.accept_login_button.connect("clicked",self.on_accept_login)
    85                 self.cancel_login_button.connect("clicked",self.on_cancel_login)
    86                
    87                 self.login_window.set_name("WHITEWINDOW")
    88                 self.set_css_info()
    89                
    90                 # Default values
    91                
    92                 self.user_entry.set_text(os.environ["USER"])
    93                 self.password_entry.grab_focus()
    94                
    95                 self.server_entry.set_text("server")
    96                                
    97                 self.add_window(self.login_window)
    98                 self.login_window.show_all()
    99        
    100         #def
    101        
    102         def on_cancel_login(self,data):
    103                
    104                 sys.exit(0)
    105                
    106         #def
    107        
    108         def on_ldap_user_changed(self,data):
    109                
    110                 if "roadmin" not in self.txt_ldap_user.get_text():
    111                         if "roadmin" in self.main_label.get_text():
    112                                 self.main_label.set_text("")
    113                
    114         #def oluc
    115        
    116         def on_accept_login(self,data):
    117                
    118                 server=self.server_entry.get_text()
    119                 self.n4d=xmlrpclib.ServerProxy("https://%s:9779"%server)
    120                 u=self.user_entry.get_text()
    121                 p=self.password_entry.get_text()
    122                 #self.login_msg_label.set_text(str(self.n4d.validate_user(u,p)))
    123                 try:
    124                         ret=self.n4d.validate_user(u,p)
    125                        
    126                         if ret[0]:
    127                                 if "adm" in ret[1] or "admins" in ret[1]:
    128                                         self.add_window(self.win_main)
    129                                         self.login_window.destroy()
    130                                        
    131                                         # Setting main window values
    132                                         self.user_info=(u,p)
    133                                         self.txt_radius_server.set_text("server")
    134                                         self.txt_radius_password.grab_focus()
    135                                        
    136                                         self.main_label.set_markup(""+_("'roadmin' is a read-only LDAP administrator manageable with <a href=\"file:///usr/share/lliurex-freeradius/rsrc/llum_roadmin.png\">llum (LDAP Users Manager).</a>")+"")
    137                                        
    138                                         ok=True
    139                                         error_msg=""
    140                                         try:
    141                                                
    142                                                 base_dn=self.n4d.get_variable("","VariablesManager","LDAP_BASE_DN")
    143                                                 if base_dn==None:
    144                                                         ok=False
    145                                                
    146                                                 self.txt_ldap_user.set_text("cn=roadmin,%s"%self.n4d.get_variable("","VariablesManager","LDAP_BASE_DN"))
    147                                         except Exception as e:
    148                                                 ok=False
    149                                                 error_msg=str(e)
    150                                                
    151                                         if not ok:     
    152                                                 self.main_label.set_markup("<span foreground='red'>"+_("'%s' is either not initialized or is not a LliureX Server."%server)+"\n%s"%error_msg+"</span>")
    153                                                 self.btn_apply.set_sensitive(False)
    154                                        
    155                                        
    156                                        
    157                                         self.win_main.show_all()
    158                                 else:
    159                                         self.login_msg_label.set_markup("<span foreground='red'>"+_("User is not allowed to use this application")+"</span>")
    160                         else:
    161                                 self.login_msg_label.set_markup("<span foreground='red'>"+_("User and/or password not valid")+"</span>")
    162                
    163                 except:
    164                        
    165                         self.login_msg_label.set_markup("<span foreground='red'>"+_("Unable to connect to '%s'"%self.server_entry.get_text())+"</span>")
    166                
    167                
    168         #def
    169        
    170         def check_values(self):
    171                
    172                 reason=""
    173                 '''
    174                        
    175                 self.txt_radius_password = uitree.get_object("txtRadiusPassword")
    176                 self.txt_radius_server=uitree.get_object("txtServer")
    177                 self.txt_ldap_user=uitree.get_object("txtLDAPUser")
    178                 self.txt_ldap_pwd=uitree.get_object("txtLDAPPassword")
    179                 self.txt_router_ip=uitree.get_object("txtrouter_ip")
    180                
    181                 '''
    182                
    183                 server=self.txt_radius_server.get_text()
    184                 radius_pwd=self.txt_radius_password.get_text()
    185                 ldap_user=self.txt_ldap_user.get_text()
    186                 ldap_pwd=self.txt_ldap_pwd.get_text()
    187                 router_ip=self.txt_router_ip.get_text()
    188                
    189                 if len(server)==0:
    190                         reason+="*" + _("Radius server entry field is empty") +"\n"
    191                        
    192                 if len(radius_pwd)==0:
    193                         reason+="*" + _("Radius password entry field is empty") +"\n"
    194                
    195                 if len(ldap_user)==0:
    196                         reason+="*" + _("LDAP user entry field is empty") +"\n"
    197                        
    198                 if len(ldap_pwd)==0:
    199                         reason+="*" + _("LDAP password entry field is empty")
    200                        
    201                
    202                 if reason=="":
    203                         return (True,(server,radius_pwd,ldap_user,ldap_pwd,router_ip))
    204                 else:
    205                         return (False,reason)
    206                
    207                
    208         #def check_values
    209        
    210        
    211         def on_btn_apply_clicked(self,data):
    212                
    213                 ret=self.check_values()
    214                
    215                 if not ret[0]:
    216                        
    217                         self.main_label.set_markup("<span foreground='red'>" +ret[1]+"</span>")
    218                        
    219                         return
    220                
    221                 try:
    222                        
    223                         radius_server,radius_pwd,ldap_user,ldap_pwd,router_ip=ret[1]
    224                        
    225                         n4d_ret=self.n4d.install_conf_files(self.user_info,"FreeRadiusManager",radius_server,radius_pwd,ldap_user,ldap_pwd,router_ip)
    226                        
    227                        
    228                        
    229                         if type(n4d_ret)==type({}):
    230                        
    231                                 if n4d_ret["status"]:
    232                                         self.main_label.set_markup("<b>"+_("Initialization complete") +"</b>")
    233                                         self.btn_apply.set_sensitive(False)
    234                                 else:
    235                                         self.main_label.set_markup("<span foreground='red'>" + _("Failed to initialize Freeradius") + ":\n %s"%(n4d_ret["msg"]) +"</span>")
    236                        
    237                         else:
    238                                         self.main_label.set_markup("<span foreground='red'>" + _("Failed to initialize Freeradius") + ":\n %s"%(n4d_ret) +"</span>")
    239                 except Exception as e:
    240                         self.main_label.set_markup("<span foreground='red'>" + _("Failed to initialize Freeradius") + ":\n %s"%(e) +"</span>")
    241                
    242                
    243                
    244         #def
    245        
    246         def on_btn_cancel_clicked(self,data):
    247                 sys.exit(0)
    248         #def
    249        
    250         def on_btn_generate_password_clicked(self,data):
    251                 self.txt_radius_password.set_text(self.generate_password())
    252         #def
    253        
    254 
    255         #startup hook
    256         def do_startup(self):
    257 
    258                 Gtk.Application.do_startup(self)
    259         #def
    260        
    261        
    262         def on_destroy(self,data):
    263                 pass
    264         #def
    265        
    266         def set_css_info(self):
    267                
    268                 css = """
    269                
    270                 #WHITEWINDOW {
    271                         background-image:-gtk-gradient (linear, left top, right top, from (#ffffff),  to (#ffffff));
    272                
    273                 }
    274                
    275                 GtkFrame{
    276                         background-image:-gtk-gradient (linear, left top, left bottom, from (#5c97cf),  to (#5c97cf));
    277                 }
    278                
    279                 #WHITEFONT {
    280                         color: white;
    281                         text-shadow: 0px 1px black;
    282                 }               
    283                
    284                 """
    285                
    286                 self.style_provider=Gtk.CssProvider()
    287                 self.style_provider.load_from_data(css)
    288                 Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(),self.style_provider,Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION)
    289                                
    290                
    291                
    292         #def set_css_info
    293        
    294         def generate_password(self):
    295                 random.seed()
    296                
    297                 chars=string.ascii_lowercase + string.ascii_uppercase + string.digits
    298                
    299                 passwd=""
    300                
    301                 for n in range(16):
    302                         c=random.randint(0,len(chars)-1)
    303                         passwd+=chars[c]
    304                        
    305                 return passwd
    306                
    307                
    308         #def
    309 
    310 
    311 # class FreeRadiusSetup
    312 
     6import LliurexFreeradius
    3137
    3148if __name__=="__main__":
    315         app = FreeRadiusSetup()
    316         exit_status = app.run(sys.argv)
    317         sys.exit(exit_status)
     9       
     10        lf=LliurexFreeradius.LliurexFreeradius()
     11        lf.build_gui()
     12
Note: See TracChangeset for help on using the changeset viewer.