def get_administrator_info(self, administrator_id): """Get the information of administrator. """ administrator = self.db.get("SELECT id, corporation, name, mobile," " phone, login, valid," " email, source_id, type" " FROM T_ADMINISTRATOR" " WHERE id = %s", administrator_id) if administrator: for key in administrator: if administrator[key] is None: administrator[key] = '' administrator = DotDict(administrator) privileges = self.db.query("SELECT tpg.id" " FROM T_PRIVILEGE AS tp, " " T_PRIVILEGE_GROUP AS tpg" " WHERE tp.privilege_group_id = tpg.id" " AND tp.administrator_id = %s", administrator_id) privilege_list = [p.id for p in privileges] privilege_groups = self.db.query("SELECT id, name, builtin AS valid" " FROM T_PRIVILEGE_GROUP") for p in privilege_groups: if p['id'] in privilege_list: p['valid'] = 1 else: p['valid'] = 0 administrator.privileges = privilege_groups key = self.get_area_memcache_key(administrator_id) areas = self.redis.getvalue(key) if not areas: areas = self.get_privilege_area(administrator_id) self.redis.setvalue(key, areas) administrator.cities = areas return administrator