add addGroup method, fix printTable

master3.3
Спиридонов Денис 12 years ago
parent 6134786943
commit 0551cb4b22

@ -32,6 +32,7 @@ class Table(ClassSerializer):
body = Array(Array(String))
values = Array(ChoiceValue)
onClick = String
addAction = String
class Option(ClassSerializer):
shortopt = String
@ -57,6 +58,7 @@ class Field(ClassSerializer):
class GroupField(ClassSerializer):
name = String
fields = Array(Field)
prevlabel = String
nextlabel = String
last = Boolean

@ -38,6 +38,11 @@ class DetailGroupInfo(ClassSerializer):
cl_group_name = String
cl_group_rights = Array(String)
class AddGroupInfo(ClassSerializer):
"""Parameters for method install"""
cl_group_add = String
cl_group_rights = Array(String)
def catchExcept():
class wrapper:
def __init__(self,f):
@ -116,8 +121,8 @@ class ApiWsdl:
i+=1
if body:
self.printTable(head, body, "Groups Table", fields = fields, \
onClick = 'detail_group')
self.printTable("Groups Table", head, body, fields = fields, \
onClick = 'detail_group', addAction = 'add_group')
except Exception,e:
for i in apply(traceback.format_exception, sys.exc_info()):
print i
@ -359,18 +364,8 @@ class ApiWsdl:
dv = datavars.DataVarsApi()
dv.importApi()
dv.flIniFile()
#try:
dv.Set('cl_group_name', info.cl_group_name)
dv.Set('cl_group_rights', info.cl_group_rights)
#except VariableError, e:
#errors = []
#mess = ''
#messages = e.message if type(e.message) == list else [e.message]
#for error in messages:
#mess += str(error) + '\n'
#errors.append(ReturnedMessage(type = 'error',
#field = 'cl_group_name', message = mess))
#return errors
self.set_cache(sid, 'change_group', "vars", dv, smart=False)
return self.changeGroupCommon(sid,info,'change_group')
@ -401,18 +396,13 @@ class ApiWsdl:
self.set_cache(sid, 'change_group', "vars", dv, smart=False)
return view
############### END CONFIRM GROUP METHODS ###################################
############### BEGIN DELETE GROUP METHODS ##################################
def delGroupCommon(self,sid,info,methodname):
"""
Install common method
"""
try:
dv = self.get_cache(sid,methodname,"vars")
#if not dv:
#reload(cl_install)
#dv = cl_install.DataVarsInstall()
#dv.importInstall()
#dv.flIniFile()
#initfunc(dv)
errors = self.check_req_params(dv, info,
ordered=['cl_group_name'],
allvars=True)
@ -434,11 +424,6 @@ class ApiWsdl:
return []
def del_group_meth(self, dv):
#ob = datavars.DataVarsApi()
#ob.importApi()
# set var env
#ob.flIniFile()
try:
group_rights_file = dv.Get('cl_api_group_rights')
cl_group_name = str(dv.Get('cl_group_name'))
@ -503,7 +488,7 @@ class ApiWsdl:
dv = datavars.DataVarsApi()
dv.importApi()
dv.flIniFile()
dv.Get('cl_req_id')
dv.Get('cl_group_name')
dv.addGroup(_("Group delete"),
normal=('cl_group_name', 'cl_group_rights'),
@ -512,3 +497,110 @@ class ApiWsdl:
view = getViewForVariables (dv,step,expert)
self.set_cache(sid, 'delete_group', "vars", dv, smart=False)
return view
############### END DELETE GROUP METHODS ####################################
############### BEGIN ADD GROUP METHODS #####################################
def addGroupCommon(self,sid,info,methodname):
"""
Install common method
"""
try:
dv = self.get_cache(sid,methodname,"vars")
errors = self.check_req_params(dv, info,
ordered=['cl_group_add', cl_group_rights],
allvars=True)
if errors:
return errors
request_meth = type("delGroupCommon",(self.Common,
ApiWsdl, object), {})
pid = self.startprocess(sid, target=request_meth,
method="add_group_meth",\
args_proc = (dv,))
returnmess = ReturnedMessage(type = 'pid', message = pid)
returnmess.type = "pid"
returnmess.message = pid
dv = self.clear_cache(sid,methodname)
return [returnmess]
finally:
if dv:
self.set_cache(sid,methodname,"vars",dv,smart=False)
return []
def add_group_meth(self, dv):
try:
group_rights_file = dv.Get('cl_api_group_rights')
cl_group_add = str(dv.Get('cl_group_add'))
self.printSUCCESS ("cl_group_add = %s" %cl_group_add)
self.printSUCCESS ("cl_group_rights = %s" %','.join(cl_group_rights))
return True
#result = []
#deleted_flag = False
#for line in readLinesFile(group_rights_file):
#if line.startswith('#') or not line:
#result.append(line)
#continue
#words = line.split(' ',1)
## first word in line equal name input method
#if words[0] != cl_group_name:
#result.append(line)
#else:
#deleted_flag = True
#fd = open (group_rights_file, 'w')
#for lines in result:
#fd.write(lines + '\n')
#fd.close()
#if deleted_flag:
#self.printSUCCESS ('<b>'+_('Group %s deleted') %cl_group_name \
#+ '!</b>')
#else:
#self.printSUCCESS ('<b>'+_('Group %s is not deleted') \
#%cl_group_name + '!</b>')
#return True
except KeyboardInterrupt:
self.endTask()
return False
except Exception, e:
msg = e.message
if not msg:
msg = e.reason
self.printERROR (_("Exception!%s") %msg)
return False
@rpc(Integer, AddGroupInfo, _returns = Array(ReturnedMessage))
@Dec.check_permissions(["edit-group"])
#@Dec.console('cl-show-request')
#@Dec.gui(_('Api'),_('Delete Request'),'view-certificate-import')
@catchExcept()
def add_group ( self, sid, info):
#dv = self.get_cache(sid,'delete_request',"vars")
#if not dv:
dv = datavars.DataVarsApi()
dv.importApi()
dv.flIniFile()
dv.Set('cl_group_add', info.cl_group_add)
dv.Set('cl_group_rights', info.cl_group_rights)
self.set_cache(sid, 'add_group', "vars", dv, smart=False)
return self.delGroupCommon(sid,info,'add_group')
@rpc(Integer, Integer, Boolean, _returns = ViewInfo)
@catchExcept()
def add_group_view (self, sid, step, expert):
dv = self.get_cache(sid, 'add_group', 'dv')
if not dv:
dv = datavars.DataVarsApi()
dv.importApi()
dv.flIniFile()
dv.Get('cl_group_name')
dv.addGroup(_("Group add"),
normal=('cl_group_add', 'cl_group_rights'),
next_label=_("Add"))
view = getViewForVariables (dv,step,expert)
self.set_cache(sid, 'add_group', "vars", dv, smart=False)
return view

@ -211,15 +211,16 @@ class ApiWsdl () :
#values = Array(ChoiceValue)
#message = api_types.Message
def printTable (self, head, body, table_name, fields = None,\
onClick = None):
def printTable (self, table_name, head, body, fields = None,\
onClick = None, addAction = None):
id = random.randint(1, self.Num)
while id in self.table_dict:
id = random.randint(1, self.Num)
from api_types import Table
table = Table(head = head, body = body, fields = fields, \
onClick = onClick, values = None)
onClick = onClick, addAction = addAction, \
values = None)
self.table_dict[id] = table
self.addMessage(type = 'table', message = table_name, id = id)

@ -123,7 +123,7 @@ class ApiWsdl:
i+=1
if body:
self.printTable(head, body, "Request Table", fields = fields, \
self.printTable("Request Table", head, body, fields = fields, \
onClick = 'detail_request')
except Exception,e:
for i in apply(traceback.format_exception, sys.exc_info()):

@ -47,7 +47,6 @@ class SH (ClassSerializer):
isopath_file = String
comboLang = String
# for check parameters without call method
CheckOnly = Boolean
@ -105,14 +104,14 @@ class ApiWsdl:
body = [['One','11','12','13','14']]#,['Two','21','22','23','24'],\
#['Three','31','32','33','34'], ['Four','41','42','43','44']]
#self.printTable(head, body, "Table 1!")
#self.printTable("Table 1!", head, body)
head = [town,'AAA','BBB','CCC','DDD']
body = [['One','11','12','13','14'],['Two','21','22','23','24'],\
['Three','31','32','33','34'], ['Four','41','42','43','44'],\
['Three','31','32','33','34'], ['Four','41','42','43','44']]
self.printTable(head, body, "Table 2!")
self.printTable("Table 2!", head, body)
self.startTask("Second task!", True, num = 2)
perc = 0
while self.getProgress() < 50:

@ -93,7 +93,7 @@ class ApiWsdl:
body = [['One','11','12','13','14'],['Two','21','22','23','24'],\
['Three','31','32','33','34'], ['Four','41','42','43','44']]
self.printTable(head, body, "Table 1!")
self.printTable("Table 1!", head, body)
self.startTask("Second task!", True)
perc = 0
while self.getProgress() < 50:

@ -135,3 +135,19 @@ class VariableClGroupRights(Variable):
return uniq_right_list
return results
class VariableClGroupAdd(Variable):
"""
Certificate Identification
"""
opt = ["--add-group"]
metavalue = "ADD_GROUP"
def init(self):
self.help = _("Group name for added")
self.label = _("Group name")
def check(self, group):
name_re = re.compile("^[a-zA-Z_0-9]{3,20}$")
if name_re.findall(user_name):
raise VariableError(_("Group name must be int"))

@ -30,7 +30,6 @@ from calculate.lib.utils.files import readLinesFile
setLocalTranslate('cl_api',sys.modules[__name__])
class VariableClAllReqId(Variable):
def get(self):
data_path = self.Get('cl_api_data')
result = []
@ -200,7 +199,6 @@ class VariableClReqDate(ReadonlyVariable):
def get(self):
words = self.Get('cl_req_base_data')
return '%s %s' %(words[2], words[3])
class VariableClReqUserName(ReadonlyVariable):
"""

Loading…
Cancel
Save