def newProject(self, projectName, projectCode): """ Create new project :param projectName: Project name :type projectName: str :param projectCode: Project code :type projectCode: str """ if self._users._user.grade > 2: raise AttributeError("Permissin denied, invalide user grade") self.log.info("#--- Create New Project ---#") self.log.info("Project Name: %s" % projectName) self.log.info("Project Code: %s" % projectCode) #--- Check New Project ---# if '%s--%s' % (projectName, projectCode) in self.projects: raise AttributeError("Project already exists: %s--%s" % (projectName, projectCode)) if projectName in self.projectNames: raise AttributeError("Project name already used: %s" % projectName) if projectCode in self.projectCodes: raise AttributeError("Project code already used: %s" % projectCode) #--- Create Project Folder ---# newProjectPath = pFile.conformPath(os.path.join(self._fdn.__projectsPath__, '%s--%s' % (projectName, projectCode))) pFile.createPath([newProjectPath], log=self.log) #--- Create Project File ---# projFile = pFile.conformPath(os.path.join(newProjectPath, '%s--%s.py' % (projectName, projectCode))) projDict = dict(__createdAt__=pFile.getDate(), __createdBy__=self._fdn.__user__, project="%s--%s" % (projectName, projectCode), watchers=[self._fdn.__user__]) try: pFile.writeDictFile(projFile, projDict) self.log.debug("---> Project file successfully written: %s" % projFile) except: raise IOError("!!! Can not write project file: %s !!!" % projFile)
def delUser(self, userName=None, userObj=None, archive=False): """ Delete given user :param userName: User name :type userName: str :param userObj: User object :type userObj: User :param archive: Archives datas (clean disk) :type archive: bool """ # --- Check User Object ---# if userObj is None: userObj = self.getChilds(userName=userName) if userObj is None: raise AttributeError("!!! User not found: %s !!!" % userName) # --- Archive User ---# if archive: self.log.info("Archive user %r" % userObj.userName) dateTime = "%s--%s" % (pFile.getDate(), pFile.getTime()) archivePath = pFile.conformPath( os.path.join(self.archivePath, userObj.userPrefix, userObj.userName, dateTime) ) pFile.createPath(archivePath, recursive=True, root=self.usersPath, log=self.log) archiveFullPath = pFile.conformPath(os.path.join(archivePath, userObj.userName)) # --- Create Archive ---# if os.path.exists(userObj.userPath): try: shutil.copytree(userObj.userPath, archiveFullPath) shutil.rmtree(userObj.userPath) self.log.debug("---> User %r archived in %s" % (userObj.userName, archivePath)) except: raise IOError("!!! Can not copy tree: %s !!!" % userObj.userPath) else: raise IOError("!!! User path not found: %s !!!" % userObj.userPath) # --- Delete User Object ---# if userObj in self.childs: self.log.info("Deleting user object %r ..." % userObj.userName) self.childs.remove(userObj) else: self.log.debug("User object %r already deleted. Skipp !!!" % userObj.userName) # --- Result ---# self.log.info("---> %r deleted." % userObj.userName)
def delUser(self, userName=None, userObj=None, archive=False): """ Delete given user :param userName: User name :type userName: str :param userObj: User object :type userObj: User :param archive: Archives datas (clean disk) :type archive: bool """ #--- Check User Object ---# if userObj is None: userObj = self.getChilds(userName=userName) if userObj is None: raise AttributeError("!!! User not found: %s !!!" % userName) #--- Archive User ---# if archive: self.log.info("Archive user %r" % userObj.userName) dateTime = '%s--%s' % (pFile.getDate(), pFile.getTime()) archivePath = pFile.conformPath(os.path.join(self.archivePath, userObj.userPrefix, userObj.userName, dateTime)) pFile.createPath(archivePath, recursive=True, root=self.usersPath, log=self.log) archiveFullPath = pFile.conformPath(os.path.join(archivePath, userObj.userName)) #--- Create Archive ---# if os.path.exists(userObj.userPath): try: shutil.copytree(userObj.userPath, archiveFullPath) shutil.rmtree(userObj.userPath) self.log.debug("---> User %r archived in %s" % (userObj.userName, archivePath)) except: raise IOError("!!! Can not copy tree: %s !!!" % userObj.userPath) else: raise IOError("!!! User path not found: %s !!!" % userObj.userPath) #--- Delete User Object ---# if userObj in self.childs: self.log.info("Deleting user object %r ..." % userObj.userName) self.childs.remove(userObj) else: self.log.debug("User object %r already deleted. Skipp !!!" % userObj.userName) #--- Result ---# self.log.info("---> %r deleted." % userObj.userName)
def newProject(self, projectName, projectCode): """ Create new project :param projectName: Project name :type projectName: str :param projectCode: Project code :type projectCode: str """ if self._users._user.grade > 2: raise AttributeError("Permissin denied, invalide user grade") self.log.info("#--- Create New Project ---#") self.log.info("Project Name: %s" % projectName) self.log.info("Project Code: %s" % projectCode) #--- Check New Project ---# if '%s--%s' % (projectName, projectCode) in self.projects: raise AttributeError("Project already exists: %s--%s" % (projectName, projectCode)) if projectName in self.projectNames: raise AttributeError("Project name already used: %s" % projectName) if projectCode in self.projectCodes: raise AttributeError("Project code already used: %s" % projectCode) #--- Create Project Folder ---# newProjectPath = pFile.conformPath( os.path.join(self._fdn.__projectsPath__, '%s--%s' % (projectName, projectCode))) pFile.createPath([newProjectPath], log=self.log) #--- Create Project File ---# projFile = pFile.conformPath( os.path.join(newProjectPath, '%s--%s.py' % (projectName, projectCode))) projDict = dict(__createdAt__=pFile.getDate(), __createdBy__=self._fdn.__user__, project="%s--%s" % (projectName, projectCode), watchers=[self._fdn.__user__]) try: pFile.writeDictFile(projFile, projDict) self.log.debug("---> Project file successfully written: %s" % projFile) except: raise IOError("!!! Can not write project file: %s !!!" % projFile)