Пример #1
0
    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