Пример #1
0
        public static void AddAdmin(string misparIshi,
                                    bool isSuperAdmin,
                                    // Whether we should set isSuperAdmin if this admin already exists or
                                    // just leave the current value.
                                    bool forceNewAdminLevel = true)
        {
            if (!CurrentMisparIshi.IsSuperAdmin())
            {
                return;
            }
            var dataContext   = new AdminDataContext();
            var existingAdmin = dataContext.Admins
                                .Where(admin => admin.MisparIshi == misparIshi)
                                .FirstOrDefault();

            if (existingAdmin != null)
            {
                if (forceNewAdminLevel)
                {
                    existingAdmin.IsSuperAdmin = isSuperAdmin;
                }
            }
            else
            {
                var newAdmin = new Admin();
                newAdmin.MisparIshi   = misparIshi;
                newAdmin.IsSuperAdmin = isSuperAdmin;
                dataContext.Admins.InsertOnSubmit(newAdmin);
            }
            dataContext.SubmitChanges();
            AdminChangeWriter.WriteAdminChange(
                String.Format("Added admin {0}", misparIshi));
            CurrentMisparIshi.SetAdmins();
        }
Пример #2
0
        public static IEnumerable <object> ProcessDashboardRequest(
            string dashboardRequestType,
            int numDays)
        {
            if (dashboardRequestType == null)
            {
                return(createEmptyResponse("Why are you sending me a null request??"));
            }
            if (!CurrentMisparIshi.IsSuperAdmin())
            {
                return(createEmptyResponse("Go away you non-super-admin, you."));
            }
            switch (dashboardRequestType)
            {
            case "total_users":
                return(LogDataForGal.GetLogDataForGal("1"));

            case "today_users":
                return(LogDataForGal.GetLogDataForGal("today"));

            case "last_days_usages":
                return(LastDays.GetUsageForLastDays(
                           numDays, false /* showUsersInsteadOfUsages */));

            case "last_days_users":
                return(LastDays.GetUsageForLastDays(
                           numDays, true /* showUsersInsteadOfUsages */));

            case "tag_searches":
                return(QueriesGetter.GetTagQueries());

            case "common_searches":
                return(QueriesGetter.GetRepeatedQueries());

            case "bug_reports":
                return(BugReports.GetAllBugReports());

            case "shares":
                return(Shares.GetShares());

            case "admin_changes":
                return(AdminChanges.GetAdminChanges());

            case "all_tags":
                return(AllTags.GetTags());
            }
            return(createEmptyResponse(String.Format(
                                           "{0} is not supported.", dashboardRequestType)));
        }
Пример #3
0
        public static void DeleteAdmin(string misparIshi)
        {
            if (!CurrentMisparIshi.IsSuperAdmin())
            {
                return;
            }
            var dataContext   = new AdminDataContext();
            var existingAdmin = dataContext.Admins
                                .Where(admin => admin.MisparIshi == misparIshi)
                                .FirstOrDefault();

            if (existingAdmin == null || existingAdmin.IsSuperAdmin)
            {
                return;
            }
            dataContext.Admins.DeleteOnSubmit(existingAdmin);
            dataContext.SubmitChanges();
            AdminChangeWriter.WriteAdminChange(
                String.Format("Deleted admin {0}", misparIshi));
            CurrentMisparIshi.SetAdmins();
        }