From 2e265493603bbb628fc413c6276a2d422cf99e12 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D0=B0=D0=BC=D0=BE=D1=83=D0=BA=D0=B8=D0=BD=20=D0=90?= =?UTF-8?q?=D0=BB=D0=B5=D0=BA=D1=81=D0=B5=D0=B9?= Date: Tue, 4 May 2010 15:38:28 +0400 Subject: [PATCH] Add methods of filling for template variables ur_group and ur_fullname --- pym/cl_fill.py | 33 +++++++++++++++++++++++++++++++++ pym/cl_template.py | 12 ++++++------ pym/cl_vars.py | 6 ++++++ 3 files changed, 45 insertions(+), 6 deletions(-) diff --git a/pym/cl_fill.py b/pym/cl_fill.py index 76fdb4b..bff426f 100644 --- a/pym/cl_fill.py +++ b/pym/cl_fill.py @@ -18,6 +18,7 @@ import re import os import types import filecmp +import pwd, grp import cl_datavars class clLocale: @@ -600,3 +601,35 @@ class fillVars(object, cl_datavars.glob_attr): elif clock.lower() == 'local': return clock.lower() return "local" + + def get_ur_login(self): + """Имя пользователя""" + uid = os.getuid() + try: + userName = pwd.getpwuid(uid).pw_name + except: + return "" + return userName + + def get_ur_group(self): + """Название группы пользователя""" + userName = self.Get('ur_login') + groupName = "" + if userName: + try: + gid = pwd.getpwnam(userName).pw_gid + groupName = grp.getgrgid(gid).gr_name + except: + return "" + return groupName + + def get_ur_fullname(self): + """Полное имя пользователя""" + userName = self.Get('ur_login') + fullName = "" + if userName: + try: + fullName = pwd.getpwnam(userName).pw_gecos + except: + return "" + return fullName \ No newline at end of file diff --git a/pym/cl_template.py b/pym/cl_template.py index 7c47471..c7bf59c 100644 --- a/pym/cl_template.py +++ b/pym/cl_template.py @@ -42,7 +42,7 @@ tr.setLanguage(sys.modules[__name__]) class _shareTermsFunction: """Общие аттрибуты для классов _terms и templateFunctions""" - _reFunctionArgvInSquareBrackets = "a-zA-Z0-9_\-\+\,\*\/\.\'\"~\\\\" + _reFunctionArgvInSquareBrackets = "a-zA-Z0-9_\-\+\,\*\/\.\'\"~\\\\ " _reFunctionArgvText = "[%s]"%_reFunctionArgvInSquareBrackets # регулярное выражение для поиска функции в шаблоне _reFunctionText = "([a-zA-Z0-9\_\-]+)\(%s+\)" %_reFunctionArgvText @@ -3406,7 +3406,7 @@ re.M|re.S) "'chown %s %s'"%(owner, nameDirconfig)) return False return True - + applyDir = newDir # Родительская директория @@ -3505,7 +3505,7 @@ re.M|re.S) strUid, strGid = owner.split(":") import pwd try: - uid = pwd.getpwnam(strUid)[2] + uid = pwd.getpwnam(strUid).pw_uid except: self.setError(_("Not user in this system: ") + strUid) self.setError(_("False value 'chown' in template")+\ @@ -3513,7 +3513,7 @@ re.M|re.S) return (applyDir, False) try: import grp - gid = grp.getgrnam(strGid)[2] + gid = grp.getgrnam(strGid).gr_gid except: self.setError(_("Not group in this system: ")+strGid) self.setError(_("False value 'chown' in template") +\ @@ -3808,7 +3808,7 @@ re.M|re.S) strUid, strGid = owner.split(":") import pwd try: - uid = pwd.getpwnam(strUid)[2] + uid = pwd.getpwnam(strUid).pw_uid except: self.setError(_("Not user in this system: ") + strUid) self.setError(_("False value 'chown' in template") +\ @@ -3816,7 +3816,7 @@ re.M|re.S) return (applyFiles, False) try: import grp - gid = grp.getgrnam(strGid)[2] + gid = grp.getgrnam(strGid).gr_gid except: self.setError(_("Not group in this system: ")+strGid) self.setError(_("False value 'chown' in template") +\ diff --git a/pym/cl_vars.py b/pym/cl_vars.py index 722619b..6934dad 100644 --- a/pym/cl_vars.py +++ b/pym/cl_vars.py @@ -110,3 +110,9 @@ class Data: #Логин пользователя ur_login = {'mode':"w"} + + #Название группы пользователя + ur_group = {'mode':"w"} + + #Полное имя пользователя + ur_fullname = {'mode':"w"}