public void DelegatePermissionTest() { using (var c = new DataObjectCleaner()) { var u = GetUniqueUserForTesting(); c.Insert(u); var u2 = GetUniqueUserForTesting(); c.Insert(u2); var g = new TblGroups {Name = "delegated group"}; c.Insert(g); PermissionsManager.Grand(g, FxGroupOperations.Rename, u.ID, null, DateTimeInterval.Full); PermissionsManager.Delegate(u.ID, g, FxGroupOperations.Rename, u2.ID, null, DateTimeInterval.Full); var GroupIds = PermissionsManager.GetObjectsForUser(SECURED_OBJECT_TYPE.GROUP, u2.ID, null, null); Assert.AreEqual(1, GroupIds.Count); Assert.AreEqual(g.ID, GroupIds[0]); var courseIds = PermissionsManager.GetObjectsForUser(SECURED_OBJECT_TYPE.COURSE, u2.ID, null, null); Assert.AreEqual(0, courseIds.Count); } }
public void GetUsersAndGroupForObjectTest() { using (var c = new DataObjectCleaner()) { var g = new TblGroups { Name = "test group" }; c.Insert(g); var user = GetUniqueUserForTesting(); c.Insert(user); var group = new TblGroups { Name = "test owner group" }; c.Insert(group); PermissionsManager.Grand(g, FxGroupOperations.View, user.ID, null, DateTimeInterval.Full); PermissionsManager.Grand(g, FxGroupOperations.ChangeMembers, null, group.ID, DateTimeInterval.Full); var ids = PermissionsManager.GetUsersForObject(SECURED_OBJECT_TYPE.GROUP, g.ID, null, null); Assert.AreEqual(1, ids.Count); Assert.AreEqual(user.ID, ids[0]); var gids = PermissionsManager.GetGroupsForObject(SECURED_OBJECT_TYPE.GROUP, g.ID, null, null); Assert.AreEqual(1, ids.Count); Assert.AreEqual(group.ID, gids[0]); } }
public void SafeDeleteAndPermissionManagerTest_GetUsersForObject() { using (var c = new DataObjectCleaner()) { var u = GetUniqueUserForTesting(); c.Insert(u); var g = new TblGroups { Name = "TestGroup1" }; ServerModel.DB.Insert(g); PermissionsManager.Grand(g, FxGroupOperations.View, u.ID, null, DateTimeInterval.Full); PermissionsManager.Grand(g, FxGroupOperations.Rename, u.ID, null, DateTimeInterval.Full); var res1 = PermissionsManager.GetUsersForObject(SECURED_OBJECT_TYPE.GROUP, g.ID, null, null); Assert.AreEqual(1, res1.Count); Assert.AreEqual(u.ID, res1[0]); ServerModel.DB.Delete <TblUsers>(u.ID); var res2 = PermissionsManager.GetUsersForObject(SECURED_OBJECT_TYPE.GROUP, g.ID, null, null); Assert.AreEqual(0, res2.Count); } }
public override void Loaded() { base.Loaded(); string tmp_curriculums = ""; group = ServerModel.DB.Load<TblGroups>(GroupID); ids = ParsString(CurriculumsID); for (int i = 0; i < ids.Count; i++) { if (ids[i] > 0) { curriculums.Add(ServerModel.DB.Load<TblCurriculums>(ids[i])); if(i < ids.Count-1)tmp_curriculums += curriculums[i].Name + ","; if (i == ids.Count - 1) tmp_curriculums += curriculums[i].Name + " "; } } Caption.Value = pageCaption; Description.Value = pageDescription. Replace("{0}", group.Name). Replace("{1}", tmp_curriculums); Title.Value = Caption.Value; fillStatisticTable(); }
public void GetGroupPermissionsTest() { using (var cl = new DataObjectCleaner()) { var c = new TblCourses { Name = "test course", Description = "unit test course" }; cl.Insert(c); var g = new TblGroups { Name = "test group" }; cl.Insert(g); PermissionsManager.Grand(c, FxCourseOperations.Modify, null, g.ID, new DateTimeInterval(DateTime.Now.AddDays(-1), DateTime.Now.AddDays(1))); var ids = PermissionsManager.GetObjectsForGroup(SECURED_OBJECT_TYPE.COURSE, g.ID, FxCourseOperations.Modify.ID, DateTime.Now); Assert.AreEqual(1, ids.Count); Assert.AreEqual(c.ID, ids[0]); ids = PermissionsManager.GetObjectsForGroup(SECURED_OBJECT_TYPE.COURSE, g.ID, null, null); Assert.AreEqual(1, ids.Count); Assert.AreEqual(c.ID, ids[0]); } }
public void SafeDeleteAndPermissionManagerTest_GetGroupsForObject() { using (var c = new DataObjectCleaner()) { var course = new TblCourses { Name = "TestCourse3" }; ServerModel.DB.Insert(course); var g = new TblGroups { Name = "TestGroup3" }; ServerModel.DB.Insert(g); PermissionsManager.Grand(course, FxCourseOperations.Use, null, g.ID, DateTimeInterval.Full); PermissionsManager.Grand(course, FxCourseOperations.Modify, null, g.ID, DateTimeInterval.Full); var res1 = PermissionsManager.GetGroupsForObject(SECURED_OBJECT_TYPE.COURSE, course.ID, null, null); Assert.AreEqual(1, res1.Count); Assert.AreEqual(g.ID, res1[0]); ServerModel.DB.Delete <TblCourses>(course.ID); var res2 = PermissionsManager.GetGroupsForObject(SECURED_OBJECT_TYPE.COURSE, course.ID, null, null); Assert.AreEqual(0, res2.Count); } }
public static void UnSignGroupFromCurriculum(TblGroups group, TblCurriculums curriculum) { List <TblPermissions> curriculumPermissions = ServerModel.DB.Query <TblPermissions>( new AndCondition( new CompareCondition <int>( DataObject.Schema.CurriculumRef, new ValueCondition <int>(curriculum.ID), COMPARE_KIND.EQUAL), new CompareCondition <int>( DataObject.Schema.OwnerGroupRef, new ValueCondition <int>(group.ID), COMPARE_KIND.EQUAL))); ServerModel.DB.Delete <TblPermissions>(curriculumPermissions); foreach (TblStages stage in TeacherHelper.StagesOfCurriculum(curriculum)) { List <TblPermissions> stagePermissions = ServerModel.DB.Query <TblPermissions>( new AndCondition( new CompareCondition <int>( DataObject.Schema.StageRef, new ValueCondition <int>(stage.ID), COMPARE_KIND.EQUAL), new CompareCondition <int>( DataObject.Schema.OwnerGroupRef, new ValueCondition <int>(group.ID), COMPARE_KIND.EQUAL))); ServerModel.DB.Delete <TblPermissions>(stagePermissions); } }
public override void Loaded() { base.Loaded(); string tmp_curriculums = ""; group = ServerModel.DB.Load <TblGroups>(GroupID); ids = ParsString(CurriculumsID); for (int i = 0; i < ids.Count; i++) { if (ids[i] > 0) { curriculums.Add(ServerModel.DB.Load <TblCurriculums>(ids[i])); if (i < ids.Count - 1) { tmp_curriculums += curriculums[i].Name + ","; } if (i == ids.Count - 1) { tmp_curriculums += curriculums[i].Name + " "; } } } Caption.Value = pageCaption; Description.Value = pageDescription. Replace("{0}", group.Name). Replace("{1}", tmp_curriculums); Title.Value = Caption.Value; fillStatisticTable(); }
public void DelegatePermissionTest() { using (var c = new DataObjectCleaner()) { var u = GetUniqueUserForTesting(); c.Insert(u); var u2 = GetUniqueUserForTesting(); c.Insert(u2); var g = new TblGroups { Name = "delegated group" }; c.Insert(g); PermissionsManager.Grand(g, FxGroupOperations.Rename, u.ID, null, DateTimeInterval.Full); PermissionsManager.Delegate(u.ID, g, FxGroupOperations.Rename, u2.ID, null, DateTimeInterval.Full); var GroupIds = PermissionsManager.GetObjectsForUser(SECURED_OBJECT_TYPE.GROUP, u2.ID, null, null); Assert.AreEqual(1, GroupIds.Count); Assert.AreEqual(g.ID, GroupIds[0]); var courseIds = PermissionsManager.GetObjectsForUser(SECURED_OBJECT_TYPE.COURSE, u2.ID, null, null); Assert.AreEqual(0, courseIds.Count); } }
private string GroupList_ActionUrl(TblGroups group) { return(ServerModel.Forms.BuildRedirectUrl(new Admin_RemoveUserFromGroupController { UserID = Controller.User.ID, GroupID = group.ID, BackUrl = Request.RawUrl })); }
private void unsignButton_Click(object sender, EventArgs e) { Button button = sender as Button; int groupID = int.Parse(button.ID.Split(unsignChar)[0]); int curriculumID = int.Parse(button.ID.Split(unsignChar)[1]); TblCurriculums curriculum = ServerModel.DB.Load <TblCurriculums>(curriculumID); TblGroups group = ServerModel.DB.Load <TblGroups>(groupID); TeacherHelper.UnSignGroupFromCurriculum(group, curriculum); buildAssignTable(); }
public static IList <TblPermissions> GroupPermissionsForCurriculum(TblGroups group, TblCurriculums curriculum) { return(ServerModel.DB.Query <TblPermissions>( new AndCondition( new CompareCondition <int>( DataObject.Schema.CurriculumRef, new ValueCondition <int>(curriculum.ID), COMPARE_KIND.EQUAL), new CompareCondition <int>( DataObject.Schema.OwnerGroupRef, new ValueCondition <int>(group.ID), COMPARE_KIND.EQUAL)))); }
public static IList <TblPermissions> GroupPermissionsForStage(TblGroups group, TblStages stage) { return(ServerModel.DB.Query <TblPermissions>( new AndCondition( new CompareCondition <int>( DataObject.Schema.StageRef, new ValueCondition <int>(stage.ID), COMPARE_KIND.EQUAL), new CompareCondition <int>( DataObject.Schema.OwnerGroupRef, new ValueCondition <int>(group.ID), COMPARE_KIND.EQUAL)))); }
public int Create(string name) { var group = new TblGroups { Name = name }; ServerModel.DB.Insert(group); int uID = ServerModel.User.Current.ID; PermissionsManager.Grand(group, FxGroupOperations.ChangeMembers, uID, null, DateTimeInterval.Full); PermissionsManager.Grand(group, FxGroupOperations.Rename, uID, null, DateTimeInterval.Full); PermissionsManager.Grand(group, FxGroupOperations.View, uID, null, DateTimeInterval.Full); return group.ID; }
public override void Loaded() { base.Loaded(); curriculum = ServerModel.DB.Load<TblCurriculums>(CurriculumID); group = ServerModel.DB.Load<TblGroups>(GroupID); Caption.Value = pageCaption; Description.Value = pageDescription. Replace("{0}", group.Name). Replace("{1}", curriculum.Name); Title.Value = Caption.Value; fillStatistic(); }
public override void Loaded() { base.Loaded(); curriculum = ServerModel.DB.Load <TblCurriculums>(CurriculumID); group = ServerModel.DB.Load <TblGroups>(GroupID); Caption.Value = pageCaption; Description.Value = pageDescription. Replace("{0}", group.Name). Replace("{1}", curriculum.Name); Title.Value = Caption.Value; fillStatistic(); }
public static void SignGroupForCurriculum(TblGroups group, TblCurriculums curriculum) { PermissionsManager.Grand(curriculum, FxCurriculumOperations.View , null, group.ID, DateTimeInterval.Full); PermissionsManager.Grand(curriculum, FxCurriculumOperations.Pass , null, group.ID, DateTimeInterval.Full); foreach (TblStages stage in TeacherHelper.StagesOfCurriculum(curriculum)) { PermissionsManager.Grand(stage, FxStageOperations.View , null, group.ID, DateTimeInterval.Full); PermissionsManager.Grand(stage, FxStageOperations.Pass , null, group.ID, DateTimeInterval.Full); } }
public static IList <TblCurriculums> GetCurriculumsForGroup(TblGroups group) { //IList<int> iDs = PermissionsManager.GetObjectsForGroup(SECURED_OBJECT_TYPE.CURRICULUM, group.ID, null, null); //return ServerModel.DB.Load<TblCurriculums>(iDs); return(ServerModel.DB.Query <TblCurriculums>( new InCondition <int>(DataObject.Schema.ID, new SubSelectCondition <TblPermissions>("CurriculumRef", new AndCondition( new CompareCondition <int>( DataObject.Schema.OwnerGroupRef, new ValueCondition <int>(group.ID), COMPARE_KIND.EQUAL), new CompareCondition <int>( DataObject.Schema.SysState, new ValueCondition <int>(0), COMPARE_KIND.EQUAL)))))); }
public int Create(string name) { var group = new TblGroups { Name = name }; ServerModel.DB.Insert(group); int uID = ServerModel.User.Current.ID; PermissionsManager.Grand(group, FxGroupOperations.ChangeMembers, uID, null, DateTimeInterval.Full); PermissionsManager.Grand(group, FxGroupOperations.Rename, uID, null, DateTimeInterval.Full); PermissionsManager.Grand(group, FxGroupOperations.View, uID, null, DateTimeInterval.Full); return(group.ID); }
public override void Loaded() { base.Loaded(); group = ServerModel.DB.Load<TblGroups>(GroupID); curriculum = ServerModel.DB.Load<TblCurriculums>(CurriculumID); Caption.Value = pageCaption. Replace("{0}", group.Name). Replace("{1}", curriculum.Name); Description.Value = pageDescription. Replace("{0}", group.Name). Replace("{1}", curriculum.Name); Title.Value = Caption.Value; CurriculumTree.SelectedNodeChanged += new EventHandler(CurriculumTree_SelectedNodeChanged); if (!IsPostBack) { CurriculumTree.DataSource = GetCurriculum(); CurriculumTree.ExpandAll(); if (SelectedNode != null) { CurriculumTree.FindNode(SelectedNode).Select(); } else { CurriculumTree.Nodes[0].Select(); } } else { RedirectToController<CurriculumTimelineController>(new CurriculumTimelineController() { BackUrl = RawUrl, GroupID = group.ID, CurriculumID = curriculum.ID, SelectedNode = CurriculumTree.SelectedNode.ValuePath }); } CurriculumTree_SelectedNodeChanged(CurriculumTree, EventArgs.Empty); }
public override void Loaded() { base.Loaded(); group = ServerModel.DB.Load <TblGroups>(GroupID); curriculum = ServerModel.DB.Load <TblCurriculums>(CurriculumID); Caption.Value = pageCaption. Replace("{0}", group.Name). Replace("{1}", curriculum.Name); Description.Value = pageDescription. Replace("{0}", group.Name). Replace("{1}", curriculum.Name); Title.Value = Caption.Value; CurriculumTree.SelectedNodeChanged += new EventHandler(CurriculumTree_SelectedNodeChanged); if (!IsPostBack) { CurriculumTree.DataSource = GetCurriculum(); CurriculumTree.ExpandAll(); if (SelectedNode != null) { CurriculumTree.FindNode(SelectedNode).Select(); } else { CurriculumTree.Nodes[0].Select(); } } else { RedirectToController <CurriculumTimelineController>(new CurriculumTimelineController() { BackUrl = RawUrl, GroupID = group.ID, CurriculumID = curriculum.ID, SelectedNode = CurriculumTree.SelectedNode.ValuePath }); } CurriculumTree_SelectedNodeChanged(CurriculumTree, EventArgs.Empty); }
private void assignButton_Click(object sender, EventArgs e) { Button button = sender as Button; int groupID = int.Parse(button.ID.Split(assignChar)[0]); int curriculumID = int.Parse(button.ID.Split(assignChar)[1]); TblCurriculums curriculum = ServerModel.DB.Load <TblCurriculums>(curriculumID); TblGroups group = ServerModel.DB.Load <TblGroups>(groupID); TeacherHelper.SignGroupForCurriculum(group, curriculum); string nextUrl = ServerModel.Forms.BuildRedirectUrl <CurriculumTimelineController>( new CurriculumTimelineController() { BackUrl = Request.RawUrl, GroupID = group.ID, CurriculumID = curriculum.ID }); Response.Redirect(nextUrl); }
public void LookupIDsTest() { using (var c = new DataObjectCleaner()) { TblUsers u = GetUniqueUserForTesting(); c.Insert(u); var a1 = new TblUserAnswers { UserRef = u.ID, AnswerTypeRef = FxAnswerType.EmptyAnswer.ID }; var a2 = (TblUserAnswers)a1.Clone(); var a3 = (TblUserAnswers)a1.Clone(); ServerModel.DB.Insert <TblUserAnswers>(new[] { a1, a2, a3 }); var ids = ServerModel.DB.LookupIds <TblUserAnswers>(u, null); Assert.AreEqual(ids, new[] { a1.ID, a2.ID, a3.ID }); var g1 = new TblGroups { Name = "TestGroup1" }; var g2 = (TblGroups)g1.Clone(); c.Insert <TblGroups>(new[] { g1, g2 }); ServerModel.DB.Link(u, g1); ServerModel.DB.Link(g2, u); var uIds = ServerModel.DB.LookupMany2ManyIds <TblGroups>(u, null); Assert.AreEqual(new[] { g1.ID, g2.ID }, uIds); var g1Ids = ServerModel.DB.LookupMany2ManyIds <TblUsers>(g1, null); Assert.AreEqual(new[] { u.ID }, g1Ids); var g2Ids = ServerModel.DB.LookupMany2ManyIds <TblUsers>(g2, null); Assert.AreEqual(new[] { u.ID }, g2Ids); ServerModel.DB.UnLink(g1, u); var newIds = ServerModel.DB.LookupMany2ManyIds <TblGroups>(u, null); Assert.AreEqual(new[] { g2.ID }, newIds); } }
public void SoftDeleteLookupCascadeDeleteTest() { using (var c = new DataObjectCleaner()) { var u = GetUniqueUserForTesting(); var g = new TblGroups { Name = "test group" }; ServerModel.DB.Insert(u); c.Insert(g); ServerModel.DB.Link(u, g); ServerModel.DB.Delete <TblUsers>(u.ID); var ids = ServerModel.DB.LookupMany2ManyIds <TblUsers>(g, null); Assert.AreEqual(0, ids.Count); } }
public void SoftDeleteTest() { var obj = new TblGroups { Name = "test group" }; ServerModel.DB.Insert(obj); var id = obj.ID; Assert.Greater(id, 0); ServerModel.DB.Delete <TblGroups>(id); // Check that object exists in database var groups = new List <TblGroups>(from g in ServerModel.DB.TblGroups where g.ID == id select g); Assert.AreEqual(1, groups.Count); // Check that it is not retrieving via query var objs = ServerModel.DB.Query <TblGroups>( new CompareCondition <int>( DataObject.Schema.ID, new ValueCondition <int>(id), COMPARE_KIND.EQUAL)); Assert.IsEmpty(objs); // ... and via Load var ok = false; try { ServerModel.DB.Load <TblGroups>(id); } catch { ok = true; } Assert.IsTrue(ok); }
public void SubSelectConditionTest() { using (var c = new DataObjectCleaner()) { var user = GetUniqueUserForTesting(); c.Insert(user); var group1 = new TblGroups { Name = user.Email + "_g1" }; var group2 = new TblGroups { Name = user.Email + "_g2" }; ServerModel.DB.Insert((IList <TblGroups>) new[] { group1, group2 }); ServerModel.DB.Link(user, group1); var groupIds = ServerModel.DB.LookupMany2ManyIds <TblGroups>(user, null); Assert.AreEqual(1, groupIds.Count); Assert.Contains(group1.ID, groupIds); var groups = ServerModel.DB.Query <TblGroups>(new InCondition <int>( DataObject.Schema.ID, new SubSelectCondition <RelUserGroups>("GroupRef", new CompareCondition <int>( DataObject.Schema.UserRef, new ValueCondition <int>(user.ID), COMPARE_KIND.EQUAL ) ), IN_CONDITION_KIND.NOT_IN )); Assert.Greater(groups.Count, 0); Assert.IsNotNull(groups.Find(p => p.ID == group2.ID)); } }
private void GroupsDropDownList_SelectedIndexChanged(object sender, EventArgs e) { CurriculumsCheckBoxList.Items.Clear(); TblGroups selectedGroup = ServerModel.DB.Load <TblGroups>(int.Parse(GroupsDropDownList.SelectedValue)); foreach (TblCurriculums curr in TeacherHelper.GetCurriculumsForGroup(selectedGroup)) { CurriculumsCheckBoxList.Items.Add(new ListItem(curr.Name, curr.ID.ToString())); } if (CurriculumsCheckBoxList.Items.Count == 0) { CurriculumsCheckBoxList.Enabled = false; ShowButtonEnabled.Value = false; Message.Value = noCurriculums; } else { CurriculumsCheckBoxList.Enabled = true; ShowButtonEnabled.Value = true; } }
public void GetObjectForUserIncludedInGroupTest() { using (var c = new DataObjectCleaner()) { var user = GetUniqueUserForTesting(); c.Insert(user); var group = new TblGroups { Name = "test group with user" }; c.Insert(group); ServerModel.DB.Link(user, group); var course = new TblCourses { Name = "test_course", Description = "test description" }; c.Insert(course); PermissionsManager.Grand(course, FxCourseOperations.Use, null, group.ID, DateTimeInterval.Full); Assert.AreEqual(0, PermissionsManager.GetObjectsForGroup(SECURED_OBJECT_TYPE.COURSE, group.ID, FxCourseOperations.Modify.ID, null).Count); var ids1 = PermissionsManager.GetObjectsForGroup(SECURED_OBJECT_TYPE.COURSE, group.ID, FxCourseOperations.Use.ID, null); Assert.AreEqual(1, ids1.Count); Assert.AreEqual(course.ID, ids1[0]); var ids2 = PermissionsManager.GetObjectsForUser(SECURED_OBJECT_TYPE.COURSE, user.ID, null, null); Assert.AreEqual(1, ids2.Count); Assert.AreEqual(course.ID, ids2[0]); var ids3 = PermissionsManager.GetObjectsForUser(SECURED_OBJECT_TYPE.COURSE, user.ID, FxCourseOperations.Use.ID, null); Assert.AreEqual(1, ids3.Count); Assert.AreEqual(course.ID, ids3[0]); } }
public void SoftDeleteLookupCascadeDeleteTest() { using (var c = new DataObjectCleaner()) { var u = GetUniqueUserForTesting(); var g = new TblGroups {Name = "test group"}; ServerModel.DB.Insert(u); c.Insert(g); ServerModel.DB.Link(u, g); ServerModel.DB.Delete<TblUsers>(u.ID); var ids = ServerModel.DB.LookupMany2ManyIds<TblUsers>(g, null); Assert.AreEqual(0, ids.Count); } }
public void GetGroupPermissionsTest() { using (var cl = new DataObjectCleaner()) { var c = new TblCourses { Name = "test course", Description = "unit test course" }; cl.Insert(c); var g = new TblGroups { Name = "test group" }; cl.Insert(g); PermissionsManager.Grand(c, FxCourseOperations.Modify, null, g.ID, new DateTimeInterval(DateTime.Now.AddDays(-1), DateTime.Now.AddDays(1))); var ids = PermissionsManager.GetObjectsForGroup(SECURED_OBJECT_TYPE.COURSE, g.ID, FxCourseOperations.Modify.ID, DateTime.Now); Assert.AreEqual(1, ids.Count); Assert.AreEqual(c.ID, ids[0]); ids = PermissionsManager.GetObjectsForGroup(SECURED_OBJECT_TYPE.COURSE, g.ID, null, null); Assert.AreEqual(1, ids.Count); Assert.AreEqual(c.ID, ids[0]); } }
public void SoftDeleteTest() { var obj = new TblGroups {Name = "test group"}; ServerModel.DB.Insert(obj); var id = obj.ID; Assert.Greater(id, 0); ServerModel.DB.Delete<TblGroups>(id); // Check that object exists in database var groups = new List<TblGroups>(from g in ServerModel.DB.TblGroups where g.ID == id select g); Assert.AreEqual(1, groups.Count); // Check that it is not retrieving via query var objs = ServerModel.DB.Query<TblGroups>( new CompareCondition<int>( DataObject.Schema.ID, new ValueCondition<int>(id), COMPARE_KIND.EQUAL)); Assert.IsEmpty(objs); // ... and via Load var ok = false; try { ServerModel.DB.Load<TblGroups>(id); } catch { ok = true; } Assert.IsTrue(ok); }
private bool GroupList_ActionEnabled(TblGroups arg) { return(ServerModel.User.Current.IsUpperStudent()); }
public void DoCreate() { int count; if (int.TryParse(Count.Value, out count)) { if (AddToGroup.Value && SelectedGroupID.Value == -1 && string.IsNullOrEmpty(NewGroupName.Value)) { ErrorText.Value = Translations.Admin_CreateBulkUserController_DoCreate_Group_name_is_empty; } if (Password.Value.Trim().IsNotNull()) { var users = new List <TblUsers>(count); var pswHash = ServerModel.User.GetPasswordHash(Password.Value); for (int i = 0; i < count; i++) { var login = Prefix.Value + i; users.Add(new TblUsers { Email = login, Login = login, LastName = login, FirstName = login, PasswordHash = pswHash }); } try { ServerModel.DB.Insert <TblUsers>(users); if (AddToGroup.Value) { Debug.Assert(SelectedGroupID.Value >= -1); TblGroups group; if (SelectedGroupID.Value == -1) { ServerModel.DB.Insert(group = new TblGroups { Name = NewGroupName.Value }); } else { group = ServerModel.DB.Load <TblGroups>(SelectedGroupID.Value); } foreach (var u in users) { ServerModel.DB.Link(u, group); if (MakeStudent.Value) { ServerModel.DB.Link(u, FxRoles.STUDENT); } } } ErrorText.Value = null; RedirectToController(new Admin_UsersController { BackUrl = HttpContext.Current.Request.RawUrl }); } catch { ErrorText.Value = Translations.Admin_CreateBulkUserController_DoCreate_Some_of_users_like_these_already_exist; } } else { ErrorText.Value = Translations.Admin_CreateBulkUserController_DoCreate_Password_is_not_specified; } } else { ErrorText.Value = string.Format(Translations.Admin_CreateBulkUserController_DoCreate__0__is_not_a_number, Count.Value); } }
public void SafeDeleteAndPermissionManagerTest_GetGroupsForObject() { using (var c = new DataObjectCleaner()) { var course = new TblCourses { Name = "TestCourse3" }; ServerModel.DB.Insert(course); var g = new TblGroups { Name = "TestGroup3" }; ServerModel.DB.Insert(g); PermissionsManager.Grand(course, FxCourseOperations.Use, null, g.ID, DateTimeInterval.Full); PermissionsManager.Grand(course, FxCourseOperations.Modify, null, g.ID, DateTimeInterval.Full); var res1 = PermissionsManager.GetGroupsForObject(SECURED_OBJECT_TYPE.COURSE, course.ID, null, null); Assert.AreEqual(1, res1.Count); Assert.AreEqual(g.ID, res1[0]); ServerModel.DB.Delete<TblCourses>(course.ID); var res2 = PermissionsManager.GetGroupsForObject(SECURED_OBJECT_TYPE.COURSE, course.ID, null, null); Assert.AreEqual(0, res2.Count); } }
public override void Initialize() { base.Initialize(); Group = ServerModel.DB.Load <TblGroups>(GroupID); GroupName.Value = Group.Name; }
public static void UnSignGroupFromCurriculum(TblGroups group, TblCurriculums curriculum) { List<TblPermissions> curriculumPermissions = ServerModel.DB.Query<TblPermissions>( new AndCondition( new CompareCondition<int>( DataObject.Schema.CurriculumRef, new ValueCondition<int>(curriculum.ID), COMPARE_KIND.EQUAL), new CompareCondition<int>( DataObject.Schema.OwnerGroupRef, new ValueCondition<int>(group.ID), COMPARE_KIND.EQUAL))); ServerModel.DB.Delete<TblPermissions>(curriculumPermissions); foreach (TblStages stage in TeacherHelper.StagesOfCurriculum(curriculum)) { List<TblPermissions> stagePermissions = ServerModel.DB.Query<TblPermissions>( new AndCondition( new CompareCondition<int>( DataObject.Schema.StageRef, new ValueCondition<int>(stage.ID), COMPARE_KIND.EQUAL), new CompareCondition<int>( DataObject.Schema.OwnerGroupRef, new ValueCondition<int>(group.ID), COMPARE_KIND.EQUAL))); ServerModel.DB.Delete<TblPermissions>(stagePermissions); } }
public static IList <TblUsers> GetStudentsOfGroup(TblGroups group) { List <int> studentsIDs = ServerModel.DB.LookupMany2ManyIds <TblUsers>(group, null); return(ServerModel.DB.Load <TblUsers>(studentsIDs)); }
public static IList<TblUsers> GetStudentsOfGroup(TblGroups group) { List<int> studentsIDs = ServerModel.DB.LookupMany2ManyIds<TblUsers>(group, null); return ServerModel.DB.Load<TblUsers>(studentsIDs); }
public static void SignGroupForCurriculum(TblGroups group, TblCurriculums curriculum) { PermissionsManager.Grand(curriculum, FxCurriculumOperations.View , null, group.ID, DateTimeInterval.Full); PermissionsManager.Grand(curriculum, FxCurriculumOperations.Pass , null, group.ID, DateTimeInterval.Full); foreach (TblStages stage in TeacherHelper.StagesOfCurriculum(curriculum)) { PermissionsManager.Grand(stage, FxStageOperations.View , null, group.ID, DateTimeInterval.Full); PermissionsManager.Grand(stage, FxStageOperations.Pass , null, group.ID, DateTimeInterval.Full); } }
private string GroupList_ActionUrl(TblGroups group) { return("");//ServerModel.Forms.BuildRedirectUrl(new Admin_RemoveGroupConfirmationController { BackUrl = Request.RawUrl, GroupID = group.ID }); }
private string GroupList_ActionTitle(TblGroups group) { return("Remove"); }
private bool GroupList_ActionEnabled(TblGroups group) { return(true); }
public void GetUsersAndGroupForObjectTest() { using (var c = new DataObjectCleaner()) { var g = new TblGroups {Name = "test group"}; c.Insert(g); var user = GetUniqueUserForTesting(); c.Insert(user); var group = new TblGroups {Name = "test owner group"}; c.Insert(group); PermissionsManager.Grand(g, FxGroupOperations.View, user.ID, null, DateTimeInterval.Full); PermissionsManager.Grand(g, FxGroupOperations.ChangeMembers, null, group.ID, DateTimeInterval.Full); var ids = PermissionsManager.GetUsersForObject(SECURED_OBJECT_TYPE.GROUP, g.ID, null, null); Assert.AreEqual(1, ids.Count); Assert.AreEqual(user.ID, ids[0]); var gids = PermissionsManager.GetGroupsForObject(SECURED_OBJECT_TYPE.GROUP, g.ID, null, null); Assert.AreEqual(1, ids.Count); Assert.AreEqual(group.ID, gids[0]); } }
public static IList<TblCurriculums> GetCurriculumsForGroup(TblGroups group) { //IList<int> iDs = PermissionsManager.GetObjectsForGroup(SECURED_OBJECT_TYPE.CURRICULUM, group.ID, null, null); //return ServerModel.DB.Load<TblCurriculums>(iDs); return ServerModel.DB.Query<TblCurriculums>( new InCondition<int>(DataObject.Schema.ID, new SubSelectCondition<TblPermissions>("CurriculumRef", new AndCondition( new CompareCondition<int>( DataObject.Schema.OwnerGroupRef, new ValueCondition<int>(group.ID), COMPARE_KIND.EQUAL), new CompareCondition<int>( DataObject.Schema.SysState, new ValueCondition<int>(0), COMPARE_KIND.EQUAL))))); }
public void SafeDeleteAndPermissionManagerTest_GetUsersForObject() { using (var c = new DataObjectCleaner()) { var u = GetUniqueUserForTesting(); c.Insert(u); var g = new TblGroups { Name = "TestGroup1" }; ServerModel.DB.Insert(g); PermissionsManager.Grand(g, FxGroupOperations.View, u.ID, null, DateTimeInterval.Full); PermissionsManager.Grand(g, FxGroupOperations.Rename, u.ID, null, DateTimeInterval.Full); var res1 = PermissionsManager.GetUsersForObject(SECURED_OBJECT_TYPE.GROUP, g.ID, null, null); Assert.AreEqual(1, res1.Count); Assert.AreEqual(u.ID, res1[0]); ServerModel.DB.Delete<TblUsers>(u.ID); var res2 = PermissionsManager.GetUsersForObject(SECURED_OBJECT_TYPE.GROUP, g.ID, null, null); Assert.AreEqual(0, res2.Count); } }
public static IList<TblPermissions> GroupPermissionsForStage(TblGroups group, TblStages stage) { return ServerModel.DB.Query<TblPermissions>( new AndCondition( new CompareCondition<int>( DataObject.Schema.StageRef, new ValueCondition<int>(stage.ID), COMPARE_KIND.EQUAL), new CompareCondition<int>( DataObject.Schema.OwnerGroupRef, new ValueCondition<int>(group.ID), COMPARE_KIND.EQUAL))); }
public void GetObjectForUserIncludedInGroupTest() { using (var c = new DataObjectCleaner()) { var user = GetUniqueUserForTesting(); c.Insert(user); var group = new TblGroups {Name = "test group with user"}; c.Insert(group); ServerModel.DB.Link(user, group); var course = new TblCourses { Name = "test_course", Description = "test description" }; c.Insert(course); PermissionsManager.Grand(course, FxCourseOperations.Use, null, group.ID, DateTimeInterval.Full); Assert.AreEqual(0, PermissionsManager.GetObjectsForGroup(SECURED_OBJECT_TYPE.COURSE, group.ID, FxCourseOperations.Modify.ID, null).Count); var ids1 = PermissionsManager.GetObjectsForGroup(SECURED_OBJECT_TYPE.COURSE, group.ID, FxCourseOperations.Use.ID, null); Assert.AreEqual(1, ids1.Count); Assert.AreEqual(course.ID, ids1[0]); var ids2 = PermissionsManager.GetObjectsForUser(SECURED_OBJECT_TYPE.COURSE, user.ID, null, null); Assert.AreEqual(1, ids2.Count); Assert.AreEqual(course.ID, ids2[0]); var ids3 = PermissionsManager.GetObjectsForUser(SECURED_OBJECT_TYPE.COURSE, user.ID, FxCourseOperations.Use.ID, null); Assert.AreEqual(1, ids3.Count); Assert.AreEqual(course.ID, ids3[0]); } }
public void LookupIDsTest() { using (var c = new DataObjectCleaner()) { TblUsers u = GetUniqueUserForTesting(); c.Insert(u); var a1 = new TblUserAnswers { UserRef = u.ID, AnswerTypeRef = FxAnswerType.EmptyAnswer.ID }; var a2 = (TblUserAnswers)a1.Clone(); var a3 = (TblUserAnswers)a1.Clone(); ServerModel.DB.Insert<TblUserAnswers>(new[] {a1, a2, a3}); var ids = ServerModel.DB.LookupIds<TblUserAnswers>(u, null); Assert.AreEqual(ids, new[] { a1.ID, a2.ID, a3.ID }); var g1 = new TblGroups { Name = "TestGroup1" }; var g2 = (TblGroups) g1.Clone(); c.Insert<TblGroups>(new[] {g1, g2}); ServerModel.DB.Link(u, g1); ServerModel.DB.Link(g2, u); var uIds = ServerModel.DB.LookupMany2ManyIds<TblGroups>(u, null); Assert.AreEqual(new[] { g1.ID, g2.ID }, uIds); var g1Ids = ServerModel.DB.LookupMany2ManyIds<TblUsers>(g1, null); Assert.AreEqual(new[] {u.ID}, g1Ids); var g2Ids = ServerModel.DB.LookupMany2ManyIds<TblUsers>(g2, null); Assert.AreEqual(new[] {u.ID}, g2Ids); ServerModel.DB.UnLink(g1, u); var newIds = ServerModel.DB.LookupMany2ManyIds<TblGroups>(u, null); Assert.AreEqual(new[] {g2.ID}, newIds); } }
public static IList<TblPermissions> GroupPermissionsForCurriculum(TblGroups group, TblCurriculums curriculum) { return ServerModel.DB.Query<TblPermissions>( new AndCondition( new CompareCondition<int>( DataObject.Schema.CurriculumRef, new ValueCondition<int>(curriculum.ID), COMPARE_KIND.EQUAL), new CompareCondition<int>( DataObject.Schema.OwnerGroupRef, new ValueCondition<int>(group.ID), COMPARE_KIND.EQUAL))); }
public void SubSelectConditionTest() { using (var c = new DataObjectCleaner()) { var user = GetUniqueUserForTesting(); c.Insert(user); var group1 = new TblGroups { Name = user.Email + "_g1" }; var group2 = new TblGroups { Name = user.Email + "_g2" }; ServerModel.DB.Insert((IList<TblGroups>)new[] {group1, group2}); ServerModel.DB.Link(user, group1); var groupIds = ServerModel.DB.LookupMany2ManyIds<TblGroups>(user, null); Assert.AreEqual(1, groupIds.Count); Assert.Contains(group1.ID, groupIds); var groups = ServerModel.DB.Query<TblGroups>(new InCondition<int>( DataObject.Schema.ID, new SubSelectCondition<RelUserGroups>("GroupRef", new CompareCondition<int>( DataObject.Schema.UserRef, new ValueCondition<int>(user.ID), COMPARE_KIND.EQUAL ) ), IN_CONDITION_KIND.NOT_IN )); Assert.Greater(groups.Count, 0); Assert.IsNotNull(groups.Find(p => p.ID == group2.ID)); } }
public override void Initialize() { base.Initialize(); Group = ServerModel.DB.Load<TblGroups>(GroupID); GroupName.Value = Group.Name; }
public void DoCreate() { int count; if (int.TryParse(Count.Value, out count)) { if (AddToGroup.Value && SelectedGroupID.Value == -1 && string.IsNullOrEmpty(NewGroupName.Value)) { ErrorText.Value = Translations.Admin_CreateBulkUserController_DoCreate_Group_name_is_empty; } if (Password.Value.Trim().IsNotNull()) { var users = new List<TblUsers>(count); var pswHash = ServerModel.User.GetPasswordHash(Password.Value); for (int i = 0; i < count; i++) { var login = Prefix.Value + i; users.Add(new TblUsers { Email = login, Login = login, LastName = login, FirstName = login, PasswordHash = pswHash }); } try { ServerModel.DB.Insert<TblUsers>(users); if (AddToGroup.Value) { Debug.Assert(SelectedGroupID.Value >= -1); TblGroups group; if (SelectedGroupID.Value == -1) { ServerModel.DB.Insert(group = new TblGroups{Name = NewGroupName.Value}); } else { group = ServerModel.DB.Load<TblGroups>(SelectedGroupID.Value); } foreach (var u in users) { ServerModel.DB.Link(u, group); if (MakeStudent.Value) { ServerModel.DB.Link(u, FxRoles.STUDENT); } } } ErrorText.Value = null; RedirectToController(new Admin_UsersController {BackUrl = HttpContext.Current.Request.RawUrl}); } catch { ErrorText.Value = Translations.Admin_CreateBulkUserController_DoCreate_Some_of_users_like_these_already_exist; } } else { ErrorText.Value = Translations.Admin_CreateBulkUserController_DoCreate_Password_is_not_specified; } } else { ErrorText.Value = string.Format(Translations.Admin_CreateBulkUserController_DoCreate__0__is_not_a_number, Count.Value); } }