コード例 #1
0
        public IHttpActionResult Get(int id)
        {
            try
            {
                var request = new AuthenticatedRequest();
                var isAuth  = request.IsApiAuthenticated &&
                              AccessTokenManager.IsScope(request.ApiToken, AccessTokenManager.ScopeUsers) ||
                              request.IsUserLoggin &&
                              request.UserId == id ||
                              request.IsAdminLoggin &&
                              request.AdminPermissions.HasSystemPermissions(ConfigManager.AppPermissions.SettingsUser);
                if (!isAuth)
                {
                    return(Unauthorized());
                }

                if (!DataProvider.UserDao.IsExists(id))
                {
                    return(NotFound());
                }

                var user = UserManager.GetUserInfoByUserId(id);

                return(Ok(new
                {
                    Value = user
                }));
            }
            catch (Exception ex)
            {
                LogUtils.AddErrorLog(ex);
                return(InternalServerError(ex));
            }
        }
コード例 #2
0
        public IHttpActionResult Create()
        {
            try
            {
                var request  = new AuthenticatedRequest();
                var userInfo = new UserInfo(request.GetPostObject <Dictionary <string, object> >());
                if (!ConfigManager.SystemConfigInfo.IsUserRegistrationGroup)
                {
                    userInfo.GroupId = 0;
                }
                var password = request.GetPostString("password");

                var userId = DataProvider.UserDao.Insert(userInfo, password, PageUtils.GetIpAddress(), out var errorMessage);
                if (userId == 0)
                {
                    return(BadRequest(errorMessage));
                }

                return(Ok(new
                {
                    Value = UserManager.GetUserInfoByUserId(userId)
                }));
            }
            catch (Exception ex)
            {
                LogUtils.AddErrorLog(ex);
                return(InternalServerError(ex));
            }
        }
コード例 #3
0
        public void Page_Load(object sender, EventArgs e)
        {
            var type          = Request.QueryString["type"];
            var userKeyPrefix = Request["userKeyPrefix"];
            var retval        = new NameValueCollection();
            var request       = new AuthenticatedRequest();

            if (type == TypeBackup)
            {
                var siteId     = TranslateUtils.ToInt(Request.Form["siteID"]);
                var backupType = Request.Form["backupType"];
                retval = Backup(siteId, backupType, userKeyPrefix);
            }
            else if (type == TypeRecovery)
            {
                var siteId            = TranslateUtils.ToInt(Request.Form["siteID"]);
                var isDeleteChannels  = TranslateUtils.ToBool(Request.Form["isDeleteChannels"]);
                var isDeleteTemplates = TranslateUtils.ToBool(Request.Form["isDeleteTemplates"]);
                var isDeleteFiles     = TranslateUtils.ToBool(Request.Form["isDeleteFiles"]);
                var isZip             = TranslateUtils.ToBool(Request.Form["isZip"]);
                var path       = Request.Form["path"];
                var isOverride = TranslateUtils.ToBool(Request.Form["isOverride"]);
                var isUseTable = TranslateUtils.ToBool(Request.Form["isUseTable"]);
                retval = Recovery(siteId, isDeleteChannels, isDeleteTemplates, isDeleteFiles, isZip, path, isOverride, isUseTable, userKeyPrefix, request);
            }

            var jsonString = TranslateUtils.NameValueCollectionToJsonString(retval);

            Page.Response.Write(jsonString);
            Page.Response.End();
        }
コード例 #4
0
        public IHttpActionResult Download()
        {
            var request = new AuthenticatedRequest();

            if (!request.IsAdminLoggin)
            {
                return(Unauthorized());
            }

            var packageId = request.GetPostString("packageId");
            var version   = request.GetPostString("version");

            try
            {
                PackageUtils.DownloadPackage(packageId, version);
            }
            catch
            {
                PackageUtils.DownloadPackage(packageId, version);
            }

            if (StringUtils.EqualsIgnoreCase(packageId, PackageUtils.PackageIdSsCms))
            {
                CacheDbUtils.RemoveAndInsert(PackageUtils.CacheKeySsCmsIsDownload, true.ToString());
            }

            return(Ok(new
            {
                Value = true
            }));
        }
コード例 #5
0
        public IHttpActionResult GetConfig()
        {
            try
            {
                var request = new AuthenticatedRequest();
                var siteId  = request.SiteId;

                if (!request.IsAdminLoggin ||
                    !request.AdminPermissionsImpl.HasSitePermissions(siteId, ConfigManager.WebSitePermissions.Configration))
                {
                    return(Unauthorized());
                }

                var siteInfo = SiteManager.GetSiteInfo(siteId);

                return(Ok(new
                {
                    Value = siteInfo,
                    Config = siteInfo.Additional
                }));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
コード例 #6
0
        public IHttpActionResult Get()
        {
            try
            {
                var request = new AuthenticatedRequest();
                var userId  = request.GetQueryInt("userId");
                if (!request.IsAdminLoggin)
                {
                    return(Unauthorized());
                }
                var adminInfo = AdminManager.GetAdminInfoByUserId(userId);
                if (adminInfo == null)
                {
                    return(NotFound());
                }
                if (request.AdminId != userId &&
                    !request.AdminPermissionsImpl.HasSystemPermissions(ConfigManager.SettingsPermissions.Admin))
                {
                    return(Unauthorized());
                }

                var departmentName = DepartmentManager.GetDepartmentName(adminInfo.DepartmentId);
                var areaName       = AreaManager.GetAreaName(adminInfo.AreaId);

                var permissions  = new PermissionsImpl(adminInfo);
                var level        = permissions.GetAdminLevel();
                var isSuperAdmin = permissions.IsConsoleAdministrator;
                var siteNames    = new List <string>();
                if (!isSuperAdmin)
                {
                    var siteIdListWithPermissions = permissions.GetSiteIdList();
                    foreach (var siteId in siteIdListWithPermissions)
                    {
                        siteNames.Add(SiteManager.GetSiteName(SiteManager.GetSiteInfo(siteId)));
                    }
                }
                var isOrdinaryAdmin = !permissions.IsSystemAdministrator;
                var roleNames       = string.Empty;
                if (isOrdinaryAdmin)
                {
                    roleNames = AdminManager.GetRolesHtml(adminInfo.UserName);
                }

                return(Ok(new
                {
                    Value = adminInfo,
                    DepartmentName = departmentName,
                    AreaName = areaName,
                    Level = level,
                    IsSuperAdmin = isSuperAdmin,
                    SiteNames = TranslateUtils.ObjectCollectionToString(siteNames, "<br />"),
                    IsOrdinaryAdmin = isOrdinaryAdmin,
                    RoleNames = roleNames
                }));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
コード例 #7
0
        public IHttpActionResult Enable(string pluginId)
        {
            try
            {
                var request = new AuthenticatedRequest();
                if (!request.IsAdminLoggin ||
                    !request.AdminPermissionsImpl.HasSystemPermissions(ConfigManager.PluginsPermissions.Add))
                {
                    return(Unauthorized());
                }

                var pluginInfo = PluginManager.GetPluginInfo(pluginId);
                if (pluginInfo != null)
                {
                    pluginInfo.IsDisabled = !pluginInfo.IsDisabled;
                    DataProvider.PluginDao.UpdateIsDisabled(pluginId, pluginInfo.IsDisabled);
                    PluginManager.ClearCache();

                    request.AddAdminLog(!pluginInfo.IsDisabled ? "禁用插件" : "启用插件", $"插件:{pluginId}");
                }

                CacheUtils.ClearAll();
                CacheDbUtils.Clear();

                return(Ok());
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
コード例 #8
0
        public IHttpActionResult Get()
        {
            try
            {
                var request = new AuthenticatedRequest();
                if (!request.IsAdminLoggin ||
                    !request.AdminPermissionsImpl.HasSystemPermissions(ConfigManager.PluginsPermissions.Add))
                {
                    return(Unauthorized());
                }

                var dict       = PluginManager.GetPluginIdAndVersionDict();
                var list       = dict.Keys.ToList();
                var packageIds = TranslateUtils.ObjectCollectionToString(list);

                return(Ok(new
                {
                    IsNightly = WebConfigUtils.IsNightlyUpdate,
                    SystemManager.PluginVersion,
                    PackageIds = packageIds
                }));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
コード例 #9
0
        public IHttpActionResult Login()
        {
            try
            {
                var request = new AuthenticatedRequest();

                var account     = request.GetPostString("account");
                var password    = request.GetPostString("password");
                var isAutoLogin = request.GetPostBool("isAutoLogin");

                var userInfo = DataProvider.UserDao.Validate(account, password, true, out var _, out var errorMessage);
                if (userInfo == null)
                {
                    return(BadRequest(errorMessage));
                }

                var accessToken = request.UserLogin(userInfo.UserName, isAutoLogin);
                var expiresAt   = DateTime.Now.AddDays(Constants.AccessTokenExpireDays);

                return(Ok(new
                {
                    Value = userInfo,
                    AccessToken = accessToken,
                    ExpiresAt = expiresAt
                }));
            }
            catch (Exception ex)
            {
                LogUtils.AddErrorLog(ex);
                return(InternalServerError(ex));
            }
        }
コード例 #10
0
        public IHttpActionResult CreateLog(int id, [FromBody] UserLogInfo logInfo)
        {
            try
            {
                var request = new AuthenticatedRequest();
                var isAuth  = request.IsApiAuthenticated &&
                              AccessTokenManager.IsScope(request.ApiToken, AccessTokenManager.ScopeUsers) ||
                              request.IsUserLoggin &&
                              request.UserId == id ||
                              request.IsAdminLoggin &&
                              request.AdminPermissions.HasSystemPermissions(ConfigManager.SettingsPermissions.User);
                if (!isAuth)
                {
                    return(Unauthorized());
                }

                var userInfo = UserManager.GetUserInfoByUserId(id);
                if (userInfo == null)
                {
                    return(NotFound());
                }

                var retVal = DataProvider.UserLogDao.ApiInsert(userInfo.UserName, logInfo);

                return(Ok(new
                {
                    Value = retVal
                }));
            }
            catch (Exception ex)
            {
                LogUtils.AddErrorLog(ex);
                return(InternalServerError(ex));
            }
        }
コード例 #11
0
        public IHttpActionResult Get(string pluginId)
        {
            try
            {
                var request = new AuthenticatedRequest();
                if (!request.IsAdminLoggin ||
                    !request.AdminPermissionsImpl.HasSystemPermissions(ConfigManager.PluginsPermissions.Add))
                {
                    return(Unauthorized());
                }

                var plugin = PluginManager.GetPlugin(pluginId);

                return(Ok(new
                {
                    IsNightly = WebConfigUtils.IsNightlyUpdate,
                    SystemManager.PluginVersion,
                    Installed = plugin != null,
                    InstalledVersion = plugin != null ? plugin.Version : string.Empty,
                    Package = plugin
                }));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
コード例 #12
0
        public IHttpActionResult GetPermissions(int adminId)
        {
            try
            {
                var request = new AuthenticatedRequest();
                if (!request.IsAdminLoggin ||
                    !request.AdminPermissionsImpl.HasSystemPermissions(ConfigManager.AppPermissions.SettingsAdmin))
                {
                    return(Unauthorized());
                }

                if (!request.AdminPermissions.IsSuperAdmin())
                {
                    return(Unauthorized());
                }

                var roles    = DataProvider.RoleDao.GetRoleNameList().Where(x => !EPredefinedRoleUtils.IsPredefinedRole(x)).ToList();
                var allSites = SiteManager.GetSiteInfoList();

                var    adminInfo  = AdminManager.GetAdminInfoByUserId(adminId);
                var    adminRoles = DataProvider.AdministratorsInRolesDao.GetRolesForUser(adminInfo.UserName);
                string adminLevel;
                var    checkedSites = new List <int>();
                var    checkedRoles = new List <string>();
                if (EPredefinedRoleUtils.IsConsoleAdministrator(adminRoles))
                {
                    adminLevel = "SuperAdmin";
                }
                else if (EPredefinedRoleUtils.IsSystemAdministrator(adminRoles))
                {
                    adminLevel   = "SiteAdmin";
                    checkedSites = TranslateUtils.StringCollectionToIntList(adminInfo.SiteIdCollection);
                }
                else
                {
                    adminLevel = "Admin";
                    foreach (var role in roles)
                    {
                        if (!checkedRoles.Contains(role) && !EPredefinedRoleUtils.IsPredefinedRole(role) && adminRoles.Contains(role))
                        {
                            checkedRoles.Add(role);
                        }
                    }
                }

                return(Ok(new
                {
                    Value = true,
                    Roles = roles,
                    AllSites = allSites,
                    AdminLevel = adminLevel,
                    CheckedSites = checkedSites,
                    CheckedRoles = checkedRoles
                }));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
コード例 #13
0
        public IHttpActionResult UnLock()
        {
            try
            {
                var request = new AuthenticatedRequest();
                if (!request.IsAdminLoggin ||
                    !request.AdminPermissionsImpl.HasSystemPermissions(ConfigManager.AppPermissions.SettingsAdmin))
                {
                    return(Unauthorized());
                }

                var id = request.GetPostInt("id");

                var adminInfo = AdminManager.GetAdminInfoByUserId(id);

                DataProvider.AdministratorDao.UnLock(new List <string>
                {
                    adminInfo.UserName
                });

                request.AddAdminLog("解锁管理员", $"管理员:{adminInfo.UserName}");

                return(Ok(new
                {
                    Value = true
                }));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
コード例 #14
0
        public IHttpActionResult Download()
        {
            try
            {
                var request = new AuthenticatedRequest();
                if (!request.IsAdminLoggin ||
                    !request.AdminPermissionsImpl.HasSystemPermissions(ConfigManager.PluginsPermissions.Add))
                {
                    return(Unauthorized());
                }

                var packageId = request.GetPostString("packageId");
                var version   = request.GetPostString("version");

                if (!StringUtils.EqualsIgnoreCase(packageId, PackageUtils.PackageIdSiteServerPlugin))
                {
                    try
                    {
                        PackageUtils.DownloadPackage(packageId, version);
                    }
                    catch
                    {
                        PackageUtils.DownloadPackage(packageId, version);
                    }
                }

                return(Ok());
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
コード例 #15
0
        public IHttpActionResult Get()
        {
            try
            {
                var request = new AuthenticatedRequest();
                if (!request.IsAdminLoggin ||
                    !request.AdminPermissionsImpl.HasSystemPermissions(ConfigManager.AppPermissions.SettingsUserGroup))
                {
                    return(Unauthorized());
                }

                var adminNames = DataProvider.AdministratorDao.GetUserNameList();
                adminNames.Insert(0, string.Empty);

                return(Ok(new
                {
                    Value = UserGroupManager.GetUserGroupInfoList(),
                    AdminNames = adminNames
                }));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
コード例 #16
0
        public LibraryTextInfo Create([FromBody] LibraryTextInfo library)
        {
            var auth = new AuthenticatedRequest();

            if (!auth.IsAdminLoggin ||
                !auth.AdminPermissionsImpl.HasSitePermissions(auth.SiteId,
                                                              ConfigManager.SitePermissions.Library))
            {
                return(Request.Unauthorized <LibraryTextInfo>());
            }

            if (string.IsNullOrEmpty(library.Title))
            {
                return(Request.BadRequest <LibraryTextInfo>("请填写图文标题"));
            }
            if (string.IsNullOrEmpty(library.Content))
            {
                return(Request.BadRequest <LibraryTextInfo>("请填写图文正文"));
            }

            library.Content = PathUtils.SaveLibraryImage(library.Content);
            library.Id      = DataProvider.LibraryTextDao.Insert(library);

            return(library);
        }
コード例 #17
0
        public IHttpActionResult Get()
        {
            try
            {
                var request = new AuthenticatedRequest();
                if (!request.IsAdminLoggin ||
                    !request.AdminPermissionsImpl.HasSitePermissions(request.SiteId, ConfigManager.WebSitePermissions.Create))
                {
                    return(Unauthorized());
                }

                var siteId = request.SiteId;

                var summary = CreateTaskManager.GetTaskSummary(siteId);

                return(Ok(new
                {
                    Value = summary
                }));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
コード例 #18
0
        public IHttpActionResult GetConfig()
        {
            try
            {
                var request = new AuthenticatedRequest();

                var siteId    = request.GetQueryInt("siteId");
                var specialId = request.GetQueryInt("specialId");

                if (!request.IsAdminLoggin ||
                    !request.AdminPermissionsImpl.HasSitePermissions(siteId,
                                                                     ConfigManager.WebSitePermissions.Template))
                {
                    return(Unauthorized());
                }

                SpecialInfo specialInfo = null;
                if (specialId > 0)
                {
                    specialInfo = SpecialManager.GetSpecialInfo(siteId, specialId);
                }

                return(Ok(new
                {
                    Value = specialInfo,
                    Guid = StringUtils.GetShortGuid(false),
                }));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
コード例 #19
0
        public IHttpActionResult Main()
        {
            var request = new AuthenticatedRequest();

            if (!request.IsAdminLoggin)
            {
                return(Unauthorized());
            }

            var packageId   = request.GetPostString("packageId");
            var version     = request.GetPostString("version");
            var packageType = request.GetPostString("packageType");

            if (StringUtils.EqualsIgnoreCase(packageId, PackageUtils.PackageIdSsCms))
            {
                packageType = PackageType.SsCms.Value;
            }

            string errorMessage;
            var    idWithVersion = $"{packageId}.{version}";

            if (!PackageUtils.UpdatePackage(idWithVersion, PackageType.Parse(packageType), out errorMessage))
            {
                return(BadRequest(errorMessage));
            }

            return(Ok());
        }
コード例 #20
0
        public IHttpActionResult GetChannels()
        {
            try
            {
                var request = new AuthenticatedRequest();

                var siteId = request.GetQueryInt("siteId");

                var channels      = new List <object>();
                var channelIdList = request.AdminPermissionsImpl.GetChannelIdList(siteId,
                                                                                  ConfigManager.ChannelPermissions.ContentAdd);
                foreach (var permissionChannelId in channelIdList)
                {
                    var permissionChannelInfo = ChannelManager.GetChannelInfo(siteId, permissionChannelId);
                    channels.Add(new
                    {
                        permissionChannelInfo.Id,
                        ChannelName = ChannelManager.GetChannelNameNavigation(siteId, permissionChannelId)
                    });
                }

                return(Ok(new
                {
                    Value = channels
                }));
            }
            catch (Exception ex)
            {
                LogUtils.AddErrorLog(ex);
                return(InternalServerError(ex));
            }
        }
コード例 #21
0
        public IHttpActionResult Get()
        {
            try
            {
                var request = new AuthenticatedRequest();
                var userId  = request.GetQueryInt("userId");
                if (userId == 0)
                {
                    userId = request.AdminId;
                }
                if (!request.IsAdminLoggin)
                {
                    return(Unauthorized());
                }
                var adminInfo = AdminManager.GetAdminInfoByUserId(userId);
                if (adminInfo == null)
                {
                    return(NotFound());
                }
                if (request.AdminId != userId &&
                    !request.AdminPermissionsImpl.HasSystemPermissions(ConfigManager.AppPermissions.SettingsAdmin))
                {
                    return(Unauthorized());
                }

                return(Ok(new
                {
                    Value = adminInfo
                }));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
コード例 #22
0
        public IHttpActionResult RemoveCache(string tableName)
        {
            try
            {
                var request = new AuthenticatedRequest();
                if (!request.IsAdminLoggin ||
                    !request.AdminPermissionsImpl.HasSystemPermissions(ConfigManager.SettingsPermissions.Site))
                {
                    return(Unauthorized());
                }

                TableColumnManager.ClearCache();

                var columns = TableColumnManager.GetTableColumnInfoList(tableName, ContentAttribute.MetadataAttributes.Value);

                return(Ok(new
                {
                    Value = columns,
                    Count = DataProvider.DatabaseDao.GetCount(tableName)
                }));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
コード例 #23
0
        public IHttpActionResult Reset()
        {
            try
            {
                var request = new AuthenticatedRequest();
                if (!request.IsAdminLoggin ||
                    !request.AdminPermissionsImpl.HasSystemPermissions(ConfigManager.SettingsPermissions.Config))
                {
                    return(Unauthorized());
                }

                foreach (var userMenuInfo in UserMenuManager.GetAllUserMenuInfoList())
                {
                    DataProvider.UserMenuDao.Delete(userMenuInfo.Id);
                }

                request.AddAdminLog("重置用户菜单");

                return(Ok(new
                {
                    Value = UserMenuManager.GetAllUserMenuInfoList()
                }));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
コード例 #24
0
        public IHttpActionResult Submit()
        {
            try
            {
                var request = new AuthenticatedRequest();
                if (!request.IsAdminLoggin ||
                    !request.AdminPermissionsImpl.HasSystemPermissions(ConfigManager.PluginsPermissions.Add))
                {
                    return(Unauthorized());
                }

                var fileNames = request.GetPostObject <List <string> >("fileNames");

                foreach (var fileName in fileNames)
                {
                    var localFilePath = PathUtils.GetTemporaryFilesPath(fileName);

                    //var importObject = new ImportObject(siteId, request.AdminName);
                    //importObject.ImportContentsByZipFile(channelInfo, localFilePath, isOverride, isChecked, checkedLevel, request.AdminId, 0, SourceManager.Default);
                }

                request.AddAdminLog("安装离线插件", string.Empty);

                return(Ok(new
                {
                    Value = true
                }));
            }
            catch (Exception ex)
            {
                LogUtils.AddErrorLog(ex);
                return(InternalServerError(ex));
            }
        }
コード例 #25
0
        public IHttpActionResult Delete()
        {
            try
            {
                var request = new AuthenticatedRequest();
                if (!request.IsAdminLoggin ||
                    !request.AdminPermissionsImpl.HasSystemPermissions(ConfigManager.SettingsPermissions.Config))
                {
                    return(Unauthorized());
                }

                var id = request.GetPostInt("id");

                DataProvider.UserMenuDao.Delete(id);

                return(Ok(new
                {
                    Value = UserMenuManager.GetAllUserMenuInfoList()
                }));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
コード例 #26
0
        public IHttpActionResult Main()
        {
            try
            {
                var request = new AuthenticatedRequest();

                var siteId                 = request.GetPostInt("siteId");
                var siteInfo               = SiteManager.GetSiteInfo(siteId);
                var pageChannelId          = request.GetPostInt("pageChannelId");
                var templateId             = request.GetPostInt("templateId");
                var totalNum               = request.GetPostInt("totalNum");
                var pageCount              = request.GetPostInt("pageCount");
                var currentPageIndex       = request.GetPostInt("currentPageIndex");
                var stlPageContentsElement = TranslateUtils.DecryptStringBySecretKey(request.GetPostString("stlPageContentsElement"));

                var nodeInfo     = ChannelManager.GetChannelInfo(siteId, pageChannelId);
                var templateInfo = TemplateManager.GetTemplateInfo(siteId, templateId);
                var pageInfo     = new PageInfo(nodeInfo.Id, 0, siteInfo, templateInfo, new Dictionary <string, object>())
                {
                    UserInfo = request.UserInfo
                };
                var contextInfo = new ContextInfo(pageInfo);

                var stlPageContents = new StlPageContents(stlPageContentsElement, pageInfo, contextInfo);

                var pageHtml = stlPageContents.Parse(totalNum, currentPageIndex, pageCount, false);

                return(Ok(pageHtml));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
コード例 #27
0
        public IHttpActionResult Submit([FromBody] UserMenuInfo menuInfo)
        {
            try
            {
                var request = new AuthenticatedRequest();
                if (!request.IsAdminLoggin ||
                    !request.AdminPermissionsImpl.HasSystemPermissions(ConfigManager.SettingsPermissions.Config))
                {
                    return(Unauthorized());
                }

                if (menuInfo.Id == 0)
                {
                    DataProvider.UserMenuDao.Insert(menuInfo);

                    request.AddAdminLog("新增用户菜单", $"用户菜单:{menuInfo.Text}");
                }
                else if (menuInfo.Id > 0)
                {
                    DataProvider.UserMenuDao.Update(menuInfo);

                    request.AddAdminLog("修改用户菜单", $"用户菜单:{menuInfo.Text}");
                }

                return(Ok(new
                {
                    Value = UserMenuManager.GetAllUserMenuInfoList()
                }));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
コード例 #28
0
        public IHttpActionResult List()
        {
            try
            {
                var request = new AuthenticatedRequest();
                var isAuth  = request.IsApiAuthenticated &&
                              AccessTokenManager.IsScope(request.ApiToken, AccessTokenManager.ScopeUsers) ||
                              request.IsAdminLoggin &&
                              request.AdminPermissions.HasSystemPermissions(ConfigManager.AppPermissions.SettingsUser);
                if (!isAuth)
                {
                    return(Unauthorized());
                }

                var top  = request.GetQueryInt("top", 20);
                var skip = request.GetQueryInt("skip");

                var users = DataProvider.UserDao.GetUsers(skip, top);
                var count = DataProvider.UserDao.GetCount();

                return(Ok(new PageResponse(users, top, skip, request.HttpRequest.Url.AbsoluteUri)
                {
                    Count = count
                }));
            }
            catch (Exception ex)
            {
                LogUtils.AddErrorLog(ex);
                return(InternalServerError(ex));
            }
        }
コード例 #29
0
        public IHttpActionResult Update()
        {
            try
            {
                var request = new AuthenticatedRequest();
                if (!request.IsAdminLoggin ||
                    !request.AdminPermissionsImpl.HasSystemPermissions(ConfigManager.PluginsPermissions.Add))
                {
                    return(Unauthorized());
                }

                var packageId   = request.GetPostString("packageId");
                var version     = request.GetPostString("version");
                var packageType = request.GetPostString("packageType");

                if (!StringUtils.EqualsIgnoreCase(packageId, PackageUtils.PackageIdSiteServerPlugin))
                {
                    string errorMessage;
                    var    idWithVersion = $"{packageId}.{version}";
                    if (!PackageUtils.UpdatePackage(idWithVersion, PackageType.Parse(packageType), out errorMessage))
                    {
                        return(BadRequest(errorMessage));
                    }
                }

                return(Ok());
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }
コード例 #30
0
        public QueryResult List([FromBody] QueryRequest req)
        {
            var auth = new AuthenticatedRequest();

            if (!auth.IsAdminLoggin ||
                !auth.AdminPermissionsImpl.HasSitePermissions(req.SiteId,
                                                              ConfigManager.SitePermissions.Library))
            {
                return(Request.Unauthorized <QueryResult>());
            }

            var groups = DataProvider.LibraryGroupDao.GetAll(LibraryType.Image);

            groups.Insert(0, new LibraryGroupInfo
            {
                Id        = 0,
                GroupName = "全部图片"
            });
            var count = DataProvider.LibraryImageDao.GetCount(req.GroupId, req.Keyword);
            var items = DataProvider.LibraryImageDao.GetAll(req.GroupId, req.Keyword, req.Page, req.PerPage);

            return(new QueryResult
            {
                Groups = groups,
                Count = count,
                Items = items
            });
        }
コード例 #31
0
        /// <summary>
        /// Retrieve the profile information for the given authentication context.
        /// </summary>
        /// <param name="context">The context under which to execute the request.</param>
        /// <returns>The profile information for the given authentication context.</returns>
        public async Task<Profile> GetAuthenticatedClientProfileAsync(IAuthenticatedVisualStudioIntegrateContext context)
        {
            var request = new AuthenticatedRequest<Profile>
            {
                Method = HttpMethod.Get,
                RequestUri = new Uri("https://app.vssps.visualstudio.com/_apis/profile/profiles/me")
            };

            var response = await context.ExecuteAsync(request);

            return response;
        }
コード例 #32
0
        public void updateUser(HttpRequestMessage request, AuthenticatedRequest<UserUpdate> userInfo)
        {
            User user = userInfo.VerifySessionKey();
            if (user == null)
            {
                throw new HttpResponseException(request.CreateResponse(HttpStatusCode.Forbidden, new APIError("invalidSessionKey", "Invalid, expired or non-existant session key. Please login properly")));
            }

            if (userInfo.Data.Email != null)
                user.Email = userInfo.Data.Email;
            if (userInfo.Data.FirstName != null)
                user.FirstName = userInfo.Data.FirstName;
            if (userInfo.Data.LastName != null)
                user.LastName = userInfo.Data.LastName;
            if (userInfo.Data.Password != null)
                user.Password = MongoDBHelper.Hash(userInfo.Data.Password, user.Salt);

            MongoDBHelper.database.GetCollection<User>("users").Save(user);
        }