Пример #1
0
    private static SimpleJson LoadPermissionTree()
    {
        PermissionType type = Cast.Enum<PermissionType>(WebUtil.ParamInt("type", 2));
        int uid = WebUtil.ParamInt("uid", -1);
        string name = string.Empty;
        bool existed = false;

        try
        {
            using (Session session = new Session())
            {
                if (type == PermissionType.OnUser)
                {
                    User user = User.Retrieve(session, uid);
                    if (user != null)
                    {
                        name = user.UserName;
                        existed = true;
                    }

                }
                else if (type == PermissionType.OnUserGroup)
                {
                    UserGroup group = UserGroup.Retrieve(session, uid);
                    if (group != null)
                    {
                        name = group.Name;
                        existed = true;
                    }
                }
                if (!existed)
                {
                    throw new Exception("没有选择用户群组!");
                }
                AuthorizationRepository repository = new AuthorizationRepository(session);

                DataTable dt = null;
                dt = repository.GetAssignedPermssions(type, uid);

                Operation op = Operation.GetRoot(session);
                string id = "assignedPrms";

                StringBuilder builder = new StringBuilder();
                builder.Append(@"<ul id=""" + id + @""">");
                if (op != null)
                {
                    op.LoadSubTree(session);
                    BuildAssignedPrmsTree(session, op, builder, dt);
                }
                builder.Append("</ul>");

                return new SimpleJson(3)
                    .Add("html", builder.ToString())
                    .Add("name", name)
                    .Add("id", id);
            }
        }
        catch (Exception e)
        {
            log.Error("LoadPermissionTree", e);
            return new SimpleJson().HandleError(e);
        }
    }